Структура bash-скрипта
Каждый Bash-скрипт начинается с шебанга (#!/bin/bash), который указывает, что скрипт должен выполняться в оболочке Bash. Комментарии в Bash начинаются с #, и они помогают документировать код, но в первой строчке # используется именно для определения оболочки.
Пример структуры:
#!/bin/bash
# Это пример скрипта
echo "Пример структуры"Чтобы создать файл скрипта, нужно дать ему имя и приписать расширение файла .sh. Для этого можно использовать команду touch
touch mybash.shТеперь редактируем содержимое нашего скрипта, для этого вводим эту команду и вставляем содержимое
nano mybash.shПосле этого сохраняем файл CTRL+X, потом Y и Enter.
Если мы попробуем запустить наш скрипт, то получим следующую ошибку


Перед запуском нам нужно сделать файл исполняемым
Теперь запускаем наш скрипт и видим такой вывод


Как видите, наш скрипт отработал, как положено — вывел текст, который мы и прописывали в скрипте.
Команда вывода сообщений
Команда echo выводит текст или значения переменных. Она полезна для отображения сообщений или результатов выполнения скрипта. Но скрипты на bash хороши тем, что можно комбинировать много команд. Например, нам нужно узнать версию операционной системы и под каким пользователем мы сейчас работаем на сервере. Но мы ходим не просто узнать, а и подписать вывод соответстующем текстом, напишем скрипт
После запуска скрипта мы узнали, что на сервере стоит Ubuntu 20.04 и работаем мы с под root


Переменные
Переменные в Bash-скриптах позволяют сохранять данные, такие как результаты команд, чтобы затем использовать их в других частях сценария. Это помогает избежать повторного ввода и улучшает читаемость скрипта.
1. Переменные среды Переменные среды — это предопределенные системные переменные, содержащие информацию о системе. Например:
$USER— имя пользователя$HOME— домашняя директория$PATH— список директорий, где Linux ищет исполняемые файлы
2. Пользовательские переменные Пользовательские переменные создаются в самом скрипте и могут хранить нужные значения:


Если в тексте вам нужно написать значок доллара, например, "Я заработал $50 на дропе Scroll!", то система подумает, что $50 — это переменная и будет ошибка. В данном случае нам нужно использовать обратную косую черту перед знаком доллара, то есть "Я заработал \$50 на дропе Scroll!"
Подстановка команд
Одним из самых полезных свойств Bash-скриптов является возможность сохранять вывод команд в переменные и использовать их в дальнейшем. Это упрощает работу со сложными сценариями, позволяя обрабатывать данные динамически.
Пример извлечения информации из команд и назначения переменным:


Математические операции
Bash поддерживает простые математические операции с помощью $((...)). Это удобно для выполнения сложения, вычитания и других операций.
Вывод этого скрипта будет 8.
Управляющая конструкция if-then
Конструкция if-then позволяет выполнять команды, если условие истинно:
В данному случае, если условие будет ложным, то текст не выведется.
Управляющая конструкция if-then-else
С помощью if-then-else можно добавить выполнение команды при ложном условии:
В отличии от предыдущей конструкции, здесь можно задать условие и при ложном резудьтате.
Сравнение чисел и строк
В Bash для сравнения чисел и строк используются разные операторы.
Для работы с числами в Bash можно использовать следующие операторы:
a -eq b: истина, еслиaравноb.a -ne b: истина, еслиaне равноb.a -gt b: истина, еслиaбольшеb.a -ge b: истина, еслиaбольше или равноb.a -lt b: истина, еслиaменьшеb.a -le b: истина, еслиaменьше или равноb.
В Bash для работы со строками используются следующие операторы:
str1 = str2: возвращает истину, если строкиstr1иstr2идентичны.str1 != str2: истина, если строки не совпадают.str1 < str2: истина, еслиstr1меньшеstr2(лексикографически).str1 > str2: истина, еслиstr1большеstr2.-n str1: истина, если строкаstr1не пустая.-z str1: истина, если строкаstr1пустая.
Эти простые условия позволяют проверять значения и работать с ними в скриптах.
Проверки файлов
Bash-скрипты позволяют выполнять различные проверки файлов, чтобы убедиться в их существовании, типе, доступе и других свойствах. Вот основные проверки, которые пригодятся при работе с файлами:
-d file: проверяет, существует ли файл и является ли он директорией.-e file: проверяет, существует ли файл (любой тип).-f file: проверяет, существует ли файл и является ли он обычным файлом.-r file: проверяет, доступен ли файл для чтения.-s file: проверяет, не пустой ли файл.-w file: проверяет, доступен ли файл для записи.-x file: проверяет, исполняемый ли файл.file1 -nt file2: проверяет, новее лиfile1, чемfile2.file1 -ot file2: проверяет, старше лиfile1, чемfile2.-O file: проверяет, является ли текущий пользователь владельцем файла.-G file: проверяет, соответствует ли файл группе текущего пользователя.
Пример Bash-скрипта с несколькими проверками для файла example.txt:
Этот скрипт использует несколько проверок, чтобы узнать, существует ли example.txt, доступен ли он для чтения, является ли он исполняемым и новее ли он другого файла.
Last updated