logo

Основы языка сценариев Bash: переменные, условия, циклы.

Несомненно, все, кто работает с операционной системой Linux, хотя бы раз сталкивались (или точно слышали) о командной оболочке BASH. Однако BASH не только командная оболочка, но и отличный скриптовый язык программирования.

Цель данной статьи - познакомить пользователей поближе с BASH, рассказать о его синтаксисе, основных методах и особенностях языка, чтобы даже обычный пользователь мог быстро написать простой скрипт для выполнения ежедневных рутинных задач.

Ша-бэнг (#!) в сценарии на Bash используется для определения пути к интерпретатору, который будет использоваться для выполнения сценария. Его также называют строкой шебенга.

Строка шебенга всегда находится в начале сценария. Она состоит из символов "#!", за которыми следует путь к интерпретатору, который обычно "/bin/bash" для сценариев на Bash:

#!/bin/bash

Эта строка информирует операционную систему о том, что сценарий должен быть запущен с использованием указанного интерпретатора. Важно включить строку шебенга в свой сценарий, чтобы гарантировать его правильное выполнение.

Помимо указания пути к интерпретатору Bash, строка шебенга может также использоваться для указания другого интерпретатора, такого как Python, Perl или другой язык сценариев.

Включив строку шебенга в ваш сценарий на Bash, вы можете обеспечить его выполнение с использованием правильного интерпретатора, что делает сценарий более переносимым и независимым от среды пользователя.

Переменные в Bash используются для хранения данных или значений, которые могут использоваться в других частях скрипта. Чтобы объявить переменную, достаточно присвоить ей значение с помощью знака "=":

name="John"age=30

Чтобы получить значение переменной, используется знак "$":

echo "Hello, $name. You are $age years old."

Условные операторы позволяют выполнять определенные действия в зависимости от выполнения условий. Наиболее часто используемый оператор - if и else. Пример использования:

#!/bin/bashсчетчик=0if [ $счетчик -lt 5 ]; then  commands to execute if the condition is trueelse  commands to execute if the condition is falsefi

Циклы позволяют выполнять определенный блок команд несколько раз. Один из наиболее популярных циклов - цикл while. Пример:

#!/bin/bashcounter=0while [ $counter -lt 5 ]; do  echo "Step $counter"  counter=$((counter + 1))done

Также в Bash есть циклы for, которые позволяют перебирать элементы в списке.

#!/bin/bashfor i in {1..5}; do  echo "Итерация $i"done

В этом примере используется цикл for для перебора значений от 1 до 5. Внутри цикла выводится сообщение "Итерация $i" для каждой итерации, где $i представляет текущее значение переменной цикла. Цикл будет выполняться 5 раз, выводя "Итерация 1" до "Итерация 5".

После того как мы познакомились как использовать переменные и передавать скрипту параметры, время познакомиться с зарезервированными переменными:

$DIRSTACK - содержимое вершины стека каталогов

$EDITOR - текстовый редактор по умолчанию

$EUID - Эффективный UID. Если вы использовали программу su для выполнения команд от другого пользователя, то эта переменная содержит UID этого пользователя, в то время как...

$UID - ...содержит реальный идентификатор, который устанавливается только при логине.

$FUNCNAME - имя текущей функции в скрипте.

$GROUPS - массив групп к которым принадлежит текущий пользователь

$HOME - домашний каталог пользователя

$HOSTNAME - ваш hostname

$HOSTTYPE - архитектура машины.

$LC_CTYPE - внутренняя переменная, котороя определяет кодировку символов

$OLDPWD - прежний рабочий каталог

$OSTYPE - тип ОС

$PATH - путь поиска программ

$PPID - идентификатор родительского процесса

$SECONDS - время работы скрипта(в сек.)

$# - общее количество параметров переданных скрипту

$* - все аргументы переданыне скрипту(выводятся в строку)

$@ - тоже самое, что и предыдущий, но параметры выводятся в столбик

$! - PID последнего запущенного в фоне процесса

$$ - PID самого скрипта

В этой статье мы рассмотрели основы языка сценариев Bash, включая работу с переменными, условиями и циклами. Познакомившись с этими концепциями, вы сможете эффективно использовать Bash для автоматизации задач и управления процессами в операционной системе Linux.




На нашем сайте вы всегда можете найти ежедневно обновляемые актуальные новости со всех регионов странны, без субъектива и политической ангажированности. Среди основных рубрик нашего сайта, которым мы отдаём предпочтение стоит выделить новости экономики, новости политики, новости строительства и недвижимости.