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

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

Life-Hack - Linux/Хакинг/Хакер/ИБ/Osint

Несомненно, все, кто работает с операционной системой 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

счетчик=0
if [ $счетчик -lt 5 ]; then
  commands to execute if the condition is true
else
  commands to execute if the condition is false
fi

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

#!/bin/bash

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

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

#!/bin/bash

for 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.

Report Page