Запитання з тегом «bash»

Для запитань щодо сценаріїв, написаних для командної оболонки Bash. Для скриптів оболонки з помилками / синтаксичними помилками, будь ласка, перевірте їх у програмі shellcheck (або на веб-сервері шелчек за адресою https://shellcheck.net) перед публікацією тут. Питання щодо інтерактивного використання Bash, швидше за все, будуть теми на Super User, ніж на переповнення стека.

30
Як отримати вихідний каталог сценарію Bash з самого сценарію
Як отримати шлях до каталогу, в якому знаходиться сценарій Bash , всередині цього сценарію? Я хочу використовувати сценарій Bash в якості запуску для іншого додатка. Я хочу змінити робочий каталог на той, де знаходиться сценарій Bash, щоб я міг працювати з файлами в цьому каталозі, наприклад: $ ./application
4948 bash  directory 


19
Як дізнатись, якщо звичайний файл не існує в Bash?
Я використовував такий сценарій, щоб перевірити, чи існує файл: #!/bin/bash FILE=$1 if [ -f $FILE ]; then echo "File $FILE exists." else echo "File $FILE does not exist." fi Який правильний синтаксис слід використовувати, якщо я хочу лише перевірити, чи файл не існує? #!/bin/bash FILE=$1 if [ $FILE does not …
3260 bash  file-io  scripting 


26
Як перевірити, чи містить рядок підрядку в Bash
У мене є рядок у Bash: string="My string" Як я можу перевірити, чи містить він інший рядок? if [ $string ?? 'foo' ]; then echo "It's there!" fi Де ??мій невідомий оператор. Я використовую ехо і grep? if echo "$string" | grep 'foo'; then echo "It's there!" fi Це виглядає …
2565 string  bash  shell  substring  sh 


17
Що означає оболонку, що означає "2> & 1"?
В оболонці Unix, якщо я хочу , щоб об'єднати stderrі stdoutв stdoutпотік для подальших маніпуляцій, я можу додати наступне в кінці моєї команди: 2>&1 Отже, якщо я хочу використовувати headна виході з g++, я можу зробити щось подібне: g++ lots_of_errors 2>&1 | head тому я бачу лише перші кілька помилок. …
2282 bash  shell  unix  redirect 


30
Витягнути ім'я файлу та розширення в Bash
Я хочу отримати ім’я файлу (без розширення) та розширення окремо. Найкраще рішення, яке я знайшов поки що: NAME=`echo "$FILE" | cut -d'.' -f1` EXTENSION=`echo "$FILE" | cut -d'.' -f2` Це неправильно, оскільки воно не працює, якщо ім'я файлу містить кілька .символів. Якщо, скажімо, у мене є a.b.js, він розгляне aі …
2105 bash  string  filenames 

30
Як розділити рядок на роздільнику в Bash?
Цей рядок у мене зберігається в змінній: IN="bla@some.com;john@home.com" Тепер я хотів би розділити рядки за ;роздільником, щоб у мене було: ADDR1="bla@some.com" ADDR2="john@home.com" Мені не обов’язково потрібні ADDR1і ADDR2змінні. Якщо вони є елементами масиву, це ще краще. Після пропозицій з відповідей нижче я закінчив наступне, що було після мене: #!/usr/bin/env bash …
2040 bash  shell  split  scripting 

30
Як я розбираю аргументи командного рядка в Bash?
Скажімо, у мене є сценарій, який викликається за допомогою цього рядка: ./myscript -vfd ./foo/bar/someFile -o /fizz/someOtherFile або цей: ./myscript -v -f -d -o /fizz/someOtherFile ./foo/bar/someFile Що загальноприйнятий метод аналізу це таким чином, що в кожному конкретному випадку (або деяка комбінація з двох) $v, $fі $dвсе буде встановлено trueі $outFileдорівнюватиме /fizz/someOtherFile?


14
Як встановити змінну на вихід команди в Bash?
У мене досить простий сценарій, який виглядає приблизно так: #!/bin/bash VAR1="$1" MOREF='sudo run command against $VAR1 | grep name | cut -c7-' echo $MOREF Коли я запускаю цей скрипт з командного рядка і передаю йому аргументи, я не отримую жодного результату. Однак, коли я запускаю команди, що містяться в $MOREFзмінній, …
1675 bash  shell  command-line 


30
Як підрахувати всі рядки коду в каталозі рекурсивно?
У нас є програма PHP і хочемо порахувати всі рядки коду під певним каталогом та його підкаталогами. Нам не потрібно ігнорувати коментарі, оскільки ми просто намагаємось отримати грубу думку. wc -l *.php Ця команда чудово працює в заданому каталозі, але ігнорує підкаталоги. Я думав, що це може спрацювати, але повертається …
1623 bash  shell 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.