Скрипты Bash
Скрипт начинается со строки, которая указывает интерпретатор (шебанг):
#!/bin/bashНаписание скриптов на Bash (Losst)
Переменные и параметры
Заголовок раздела «Переменные и параметры»Обозначение переменной в Bash:

Принцип определения исполняемого файла:

Специальные параметры:


Код возврата последней команды ($?) описан на странице Процессы и потоки вывода.
Запуск скрипта без ./
Заголовок раздела «Запуск скрипта без ./»Чтобы скрипт запускался по имени, добавьте его каталог в $PATH.
-
Убедитесь, что у скрипта есть право на исполнение:
Окно терминала chmod +x my_script.sh -
Добавьте каталог в
PATH. Для этого в конец файла настроек шелла (обычно~/.bashrcили~/.bash_profile) допишите строку:Окно терминала export PATH=$PATH:"/home/<user>/scripts" -
Примените изменения:
Окно терминала source ~/.bashrc
Теперь скрипты из этого каталога запускаются без ./.



Условный оператор if
Заголовок раздела «Условный оператор if»a=5b=5
if [ "$a" = "$b" ]; then echo "A = B"else echo "A не равно B"fiОператор выбора case
Заголовок раздела «Оператор выбора case»case сопоставляет выражение (например, переменную) с набором значений и выполняет команды первого совпавшего варианта.
case "$variable" in "option1") command ;; "option2") command ;; *) command ;;esacКонструкция case (metanit.com)
Арифметические операции
Заголовок раздела «Арифметические операции»Арифметические операции в Bash-скрипте

let — встроенная команда bash для базовой арифметики. Результат на стандартный вывод она не печатает:
let <арифметическая операция>expr похож на let, но по умолчанию печатает ответ. Результат можно сохранить в переменную через подстановку команды. Вокруг операторов нужны пробелы, а выражения с пробелами не нужно заключать в кавычки:
x=$(expr 2 + 2)Выполняет команды, пока условие истинно.
while [CONDITION]do [COMMANDS]doneВыполняет команды, пока условие ложно.
until [CONDITION]do [COMMANDS]doneФункции
Заголовок раздела «Функции»my_function() { команда1 команда2}Имя функции не должно совпадать с именем существующей команды или функции. Команды в теле функции пишутся с новой строки.
Функции bash в скриптах (Losst)
Приглашение командной строки
Заголовок раздела «Приглашение командной строки»Настройка строки приглашения Bash (ZENCOD)

Многострочный текст в команде (heredoc)
Заголовок раздела «Многострочный текст в команде (heredoc)»