8 основных принципов написания сценариев bash для каждого программиста.
Большинство программистов работают с Linux и наверняка столкнутся с bash и его странными скриптами («@» для получения всех значений массива — что!!)
Итак, вот 8 концепций, которые нужно охватить, чтобы понять и написать свои собственные сценарии bash менее чем за 10 минут.
Основы
Скрипт bash представляет собой интерпретатор командного языка для взаимодействия с компьютером из командной строки и представляет собой революционную технологию со времен работы компьютеров с перфокартами.

Его также называют оболочкой, потому что он окружает ядро как оболочка и помогает программистам выполнять необходимые действия, взаимодействуя с ядром, скрывая его тонкости. Кроме того, Bash (оболочка Bourne) является развитием оболочки Bourne.
Большинство программистов, должно быть, использовали командную строку для создания, перемещения и копирования файлов в среде Linux. Сценарий Bash — это способ облегчить действия непрерывным программным способом, поэтому он очень эффективен для автоматизации задач, DevOps, тестирования и охвата. и т.д. Поскольку мы закончили с введением и историей, давайте перейдем к основной части.
Привет, мир
Сценарий bash должен начинаться с вызова своего пути для их запуска вместе с «#!» как показано ниже.
#!/bin/bash echo "Hello World"
и мы не можем не использовать операторы печати в нашем коде, какой бы язык ни использовался для отладки.
Таким образом, echo эквивалентен print в сценариях Bash. Пригодится
Переменные
Переменным можно присваивать знак «равно» (=), и для них нет типов, таких как C/C++, Java и т. д. Они могут содержать как числа, так и строки.
Для ссылки на переменную используется знак «$».
#!/bin/bash
favorite_lunch='biriyani'
echo "Cant live without" ${favorite_lunch}
Совет. Рекомендуется заключать ссылки на переменные в квадратные скобки, как показано на рисунке.
Аргументы
DRY (не повторяйтесь) — одна из основных концепций хорошего кода, нам нужны функции и способы передачи им аргументов.
#!/bin/bash
function menu() {
echo ${1}
echo ${2}
}
menu "Starters" "Dessert"
Приведенный выше код печатает «Закуски», а затем «Десерт» в новой строке.
Объяснение: функции определяются с помощью ключевого слова с метким названием «функция», за которым следует имя функции в круглых скобках и фигурных скобках. Функции получают аргументы в порядке численного, начиная с 1.
Совет. Значение аргумента, равное 0, даст имя функции.
Арифметические операции
#!/bin/bash
function calculate() {
sum=$(($1+$2))
echo ${sum}
}
calculate 20 30
(( )) → составная запись для вычисления выражения
$ → оператор переменной для сохранения выражения.
Выше показана арифметическая операция сложения, аналогичным образом применимы и другие арифметические операторы.
Операторы → сложение (+), вычитание (-), умножение (*), деление (/), возведение в степень (**), модуль (%)
Условные операторы
Язык программирования без возможности принимать решения и проверять их был бы довольно скучным, поэтому условные операторы и циклы являются фундаментальными столпами программирования.
Bash предоставляет условные операторы, такие как if, else и case.
function calculate() {
if [[ $1 == "add" ]]; then
sum=$(($2+$3))
echo ${sum}
elif [[ $1 == "sub" ]]; then
sub=$(($2-$3))
echo ${sub}
fi
}
calculate add 30 20
calculate sub 30 20
Операторы if заканчиваются fi, а операторы case заканчиваются esac, если условные операторы могут быть заключены в () или [] и двойные круглые скобки (()) или двойные квадратные скобки [[ ]] для нескольких условий.
function calculate() {
case $1 in
"add")
sum=$(($2+$3))
echo $sum ;;
"sub")
sub=$(($2-$3))
echo $sub ;;
esac
}
calculate add 40 20
calculate sub 40 20
Совет. если вас не устраивает использование двойных или одинарных паратезов или квадратных скобок, используйте двойные.
Это первая часть серии статей о написании сценариев bash. Подпишитесь на меня, если статья окажется вам полезной, и обратитесь к этой серии (будет обновляться), чтобы стать профессионалом в написании сценариев bash, чтобы сэкономить массу бесплатных время и отдых на Бали раньше, чем вы ожидали🌴🌅.