Руководство для начинающих по написанию сценариев Bash на простых примерах
Bash — очень мощный инструмент, который может помочь вам автоматизировать множество вещей в вашем повседневном рабочем процессе. Особенно, если вы работаете в технологическом секторе, то есть (вы разработчик, специалист по данным, системный администратор и т. д.), Bash может оказаться невероятно полезным инструментом.
В этой статье мы рассмотрим следующие темы. Не стесняйтесь использовать эту статью в качестве справочного руководства:
- Базовая программа Hello World
- Переменные
- Чтение пользовательского ввода
- Математические операторы
- Петли
- Условные
Базовая программа Hello World в Bash
Вот как выглядит базовая программа hello world в bash:
Если вы запустите вышеуказанную программу, вы получите следующий вывод:
Hello World
Первая строка представляет собой комментарий, в котором указывается путь, по которому в системе находится bash. Вторая строка фактически выводит на экран текст «Hello World». Как видите, echo
— это команда, которая используется для вывода строк на экран.
Понимание переменных в Bash
Рассмотрим следующий пример
Вышеупомянутая программа производит следующий вывод:
Hi my name is Dayem /bin/bash
В сценариях bash есть два типа переменных. Одна из них — это системные переменные, а другая — пользовательские переменные. Системные переменные обычно пишутся заглавными буквами, а их значение предопределяется операционной системой. Пользовательские переменные — это те, которые программист определяет в своем сценарии bash.
В строке номер 4 вы можете увидеть определяемую пользователем переменную. Я устанавливаю значение переменной name
в Dayem. В строке 5 я печатаю переменную на экране
В строке номер 8 я печатаю системную переменную $BASH
. Он печатает местоположение программы bash в вашей системе.
Вот некоторые из других распространенных системных переменных в Linux:
ПОЛЬЗОВАТЕЛЬ:имя пользователя
HOME:путь по умолчанию к домашнему каталогу пользователя.
EDITOR:путь к программе, которая редактирует содержимое файлов.
UID:уникальный идентификатор пользователя.
ТЕРМИН:эмулятор терминала по умолчанию
SHELL:оболочка, используемая пользователем.
Получение пользовательского ввода в Bash
Получить пользовательский ввод из bash очень просто. Рассмотрим следующий пример кода:
Вот результат, который вы получите, запустив указанную выше программу.
Вы можете использовать команду read
, чтобы получить ввод от пользователя. В строке номер 3 мы принимаем ввод от пользователя и сохраняем его в переменной имени. Затем в строке №4 печатаем имя, взятое у пользователя и отображающее его на экране.
Если вы хотите, чтобы пользовательский ввод и подсказка отображались в одной строке, вы можете использовать флаг -p
.
Если вы хотите скрыть то, что пользователь печатает на экране (в случае получения пароля от пользователя), вы можете использовать флаг -s
, как показано в строке 12.
Математические операции в Bash
Рассмотрим следующий пример кода:
Как видите, в bash мы используем двойные круглые скобки ((‹выражение›)) для выполнения математических операций. Если вы хотите сохранить результат математической операции, вы должны следовать синтаксису:
variableName=$((expression))
Ниже приведен список математических операторов, поддерживаемых в Bash:
- + за дополнение
- - для вычитания
- / для деления
- % для модуля
- * для умножения
- ** для возведения в степень
- ++ для увеличения
- -- для уменьшения
Использование циклов в Bash
Рассмотрим следующий код для разных типов циклов в Bash.
В приведенном выше примере вы можете увидеть два типа циклов. Первый — это цикл for. Второй — цикл while. В цикле while синтаксис -lt
означает меньше. Выходные данные для каждого цикла также показаны в примере кода.
Условные выражения в Bash
Здесь мы пишем условные операторы в Bash. Рассмотрим следующий код:
Приведенная выше программа выдаст следующий результат:
Be careful not to fall off! b is greater than a Pweepwishpeeterdepweet!
Как вы могли заметить в приведенном выше коде, все условные операторы в Bash должны заканчиваться ключевым словом afi
. В Bash мы всегда помещаем условия в квадратные скобки, т.е. [‹conditional_expression›], например:
[“$isCheck” == true]
Если у вас есть несколько условных операторов, вы можете связать их с помощью ключевого слова elif
. Например:
if [<condition>]; then #do something elif[<condition>]; then #do something elif[<condition>]; then #do something elif[<condition>]; then #do something else #do something fi