Руководство для начинающих по написанию сценариев 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