Сценарии Bash удобны для автоматизации задач, и вы обнаружите, что они отлично подходят для создания простых приложений командной строки. Оболочка Bash интерпретирует сценарии Bash, поэтому вам не нужно устанавливать какие-либо зависимости для их написания и запуска. Сценарии Bash также переносимы, поскольку большинство операционных систем на основе Unix используют один и тот же интерпретатор оболочки.

Знание сценариев Bash является обязательным для каждого разработчика, особенно если вы работаете с системами на основе Unix.

Переменные в Баше

Баш-переменные чувствительны к регистру. Чтобы объявить переменные, используйте знак равенства (=) с именем слева и значением справа:

ШТАТ = Вашингтон

Значение, которое присваивает это объявление ГОСУДАРСТВО это одно слово. Если вам нужны пробелы в вашем значении, используйте кавычки вокруг него:

STATE="Северная Аризона"

Вам нужно будет использовать знак доллара ($) префикс для ссылки на переменные в других переменных или операторах:

ШТАТ = Вашингтон
LOCATION="Мое местоположение $СОСТОЯНИЕ"
instagram viewer

Печать значений в 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.