Сценарии Bash удобны для автоматизации задач, и вы обнаружите, что они отлично подходят для создания простых приложений командной строки. Оболочка Bash интерпретирует сценарии Bash, поэтому вам не нужно устанавливать какие-либо зависимости для их написания и запуска. Сценарии Bash также переносимы, поскольку большинство операционных систем на основе Unix используют один и тот же интерпретатор оболочки.
Знание сценариев Bash является обязательным для каждого разработчика, особенно если вы работаете с системами на основе Unix.
Переменные в Баше
Баш-переменные чувствительны к регистру. Чтобы объявить переменные, используйте знак равенства (=) с именем слева и значением справа:
ШТАТ = Вашингтон
Значение, которое присваивает это объявление ГОСУДАРСТВО это одно слово. Если вам нужны пробелы в вашем значении, используйте кавычки вокруг него:
STATE="Северная Аризона"
Вам нужно будет использовать знак доллара ($) префикс для ссылки на переменные в других переменных или операторах:
ШТАТ = Вашингтон
LOCATION="Мое местоположение $СОСТОЯНИЕ"
Печать значений в Bash
Есть несколько способов печати переменных в Bash. Вы можете использовать эхо команда для базового вывода или C-стиль printf команда форматирования строки.
ШТАТ = Вашингтон
LOCATION="Мое местоположение $СОСТОЯНИЕ"
эхо$РАСПОЛОЖЕНИЕ
После объявления ГОСУДАРСТВО переменная, этот скрипт определяет РАСПОЛОЖЕНИЕ со ссылкой на СОСТОЯНИЕ. If then использует эхо для вывода окончательного значения переменной LOCATION.
В printf ключевое слово позволяет использовать глаголы форматирования для вывода данных. Глаголы форматирования строк аналогичны тем, что используются в C и Go, но с ограниченным количеством глаголов.
Глагол | Функциональность |
---|---|
%с | печатает отдельные символы |
%о | печатает восьмизначные числа |
%s | печатает строки независимо от регистра |
%Икс | печатает строчные шестнадцатеричные |
%ИКС | печатает шестнадцатеричный код в верхнем регистре |
%d | печатает целые числа |
%е | печатает научное понятие с плавающей запятой строчными буквами |
%E | печатает научное понятие с плавающей запятой в верхнем регистре |
%f | печатает числа с плавающей запятой |
%% | печатает один символ процента. |
Вот пример употребления глагола с Распечатать ключевое слово.
СОСТОЯНИЕ = Лагос
printf "Мое местоположение %s" $СОСТОЯНИЕ
В printf функция заменит ГОСУДАРСТВО переменная в положении %s глагол, и вывод будет «Мое местоположение — Лагос».
Вы можете оставлять комментарии в Bash с помощью решётки или фунта (#) символ. Оболочка автоматически игнорирует комментарии.
#!/бин/баш
# ШТАТ=Вашингтон
# LOCATION="Мое местоположение: $STATE"
Многострочных комментариев нет. Большинство IDE и текстовых редакторов позволяют комментировать с помощью сочетания клавиш Ctrl/Command + косая черта (/). Вы должны иметь возможность использовать ярлык для создания нескольких однострочных комментариев.
Получение пользовательского ввода в Bash
Как и во многих других языках программирования, в Bash можно получать пользовательский ввод, чтобы сделать ваши программы/скрипты более интерактивными. Вы можете использовать читать команда для запроса ввода пользователя.
читать отклик
В этом случае отклик переменная будет содержать ввод пользователя при доставке.
эхо "Что вы хотите?: "
прочитать ответ
эхо $ ответ
В приведенном выше примере запрос пользовательского ввода будет на новой строке.
Вы можете добавить -н флаг на эхо оператор печати, чтобы сохранить строку, в которую пользователь вводит ввод.
echo -n "Что вы хотите."
прочитать ответ
эхо $ ответ
Объявление массивов в Bash
Массивы в Баше такие же, как и большинство языков. Вы можете объявить переменную массива в Bash, указав элементы в круглых скобках.
Страны=('США' 'Россия' 'Украина', "Англия", "Тайвань", "Китай")
При доступе к массиву через ссылку на имя переменной будет получен первый элемент. Вы можете получить доступ ко всему массиву, используя знак звездочки в качестве индекса.
эхо ${Страны[*]}
Вы также можете указать индекс массива для доступа к определенному элементу. Индекс массива начинается с нуля.
эхо "${Страны[4]}"
Условные операторы в Bash
Bash предоставляет условия для принятия решений в программах.
Вот анатомия оператора if-else в Bash. Вам нужно будет использовать точку с запятой, чтобы указать конец условия.
если [[ условие ]]; тогда
эхо заявление1
Элиф [[условие ]]; тогда
эхо заявление2
еще [[условие ]]; тогда
эхо заявление3
фи
Вы должны заканчивать каждый если заявление с фи ключевое слово.
если [ 1 == 2 ]; тогда
эхо один
Элиф [ 2 == 3 ]; тогда#иначе-если
эхо два
еще [ 4 > 3 ];
эхо "правильно, 3"
фи
Вы можете использовать операторы case в своих программах Bash, используя кейс ключевое слово. Вам нужно будет указать шаблон, за которым следуют закрывающие круглые скобки перед оператором.
ГОРОД=Лагос
кейс$ ГОРОДв
«Вашингтон») # шаблон
эхо "Соединенные Штаты Америки" # утверждение
;; # конец дела
"Лагос" | «Абуджа»)
эхо "Нигерия"
;;
"Йоханнесбург" | "Кейптаун")
эхо "Южная Африка"
;;
*) # шаблон по умолчанию
эхо "Антарктида" # оператор по умолчанию
;;
эсак# конец оператора case
Вы можете определить регистр по умолчанию, используя знак звездочки (*) в качестве шаблона. Операторы case должны заканчиваться эсак ключевое слово.
Циклы в Баше
В зависимости от ваших потребностей вы можете использовать цикл while, диапазон for-цикл или C-стиль. цикл for для повторяющихся операций.
Вот пример цикла for в стиле C. Циклы for должны заканчиваться Выполнено ключевое слово, и вы должны закончить оператор for точкой с запятой, за которой следует делать ключевое слово.
за ((а = 0; а < 10; а+2)); делать
эхо$а
Выполнено
Диапазон for loop пригодится для работы с файлами и многих других операций. Вам нужно будет использовать в ключевое слово с диапазоном for-loop.
за я в {1..7}; делать
эхо$1
Выполнено
Вот простой бесконечный цикл для демонстрации Bash пока петли в действии.
имя=1
пока [ 1 -ле 5 ] # пока 1 < 5
делать
эхо$имя
Выполнено
В -ле в операторе условия есть бинарный оператор меньше чем.
Функции в Баше
Вам не нужны ключевые слова для объявления функций в Bash. Вы можете объявлять функции с именем, а затем заключать скобки перед телом функции.
print_working_directory() {
эхо$PWD#вызов команды PWD из скрипта
}
эхо "Ты в $(print_working_directory)"
Функции могут возвращать переменные в Bash. Все, что вам нужно, это возвращаться ключевое слово.
print_working_directory() {
возвращаться$PWD
}
В print_working_directory Функция возвращает рабочий каталог файла.
Вы можете писать сценарии оболочки на других языках
Bash — не единственный язык, который вы можете использовать для взаимодействия с оболочкой вашей операционной системы или создания приложений командной строки. Вы можете использовать многие другие языки, такие как Go, Python, Ruby и Rust.
Во многих операционных системах предустановлен Python3, и Python является распространенным языком. Если вам нужно еще больше функциональных возможностей, чем могут предложить сценарии Bash, рассмотрите возможность использования Python.