BASH (сокращение от Bourne-Again Shell) — самый популярный командный интерпретатор для юниксоподобных операционных систем. Например, окно терминала в Linux работает в том числе благодаря Bash.

который пригодится для автоматизации процессов. Допустим, вы любите постоянно пробовать что-то новое и часто меняете операционные системы. Каждый раз переустанавливать все свои конфиги и программы вручную на новую ОС — куча мороки. А благодаря самописным bash-скриптам можно полностью автоматизировать этот процесс и не париться.

Bash — штука мощная и хранит в себе кучу полезных функций. Сегодня мы поговорим о некоторых командах и операторах, которые помогут в автоматизации.

Создание скриптов в Bash Shell

Чтобы написать bash-скрипт, нам понадобится терминал и текстовый редактор. Расширение bash-скриптов — .sh. Поэтому чтобы написать скрипт, для начала создайте текстовый файл и сохраните его с расширением .sh. На картинках ниже в качестве текстового редактора использует Geddit, он по умолчанию установлен в Ubuntu и других линуксоподобных ОС.

Создаем файл myscript.sh.

Чтобы bash-скрипт работал, для начала нужно изменить права доступа. Это можно сделать с помощью команды chmod +x. Чтобы сделать файл исполняемым, с помощью терминала перейдите в папку, в которой хранится скрипт, и выполните эту команду:

chmod +x имя_файла

Теперь выполните эту команду:

chmod +x myscript.sh command.

Запустить bash-скрипт можно двумя способами:

  1. Bash имя_файла
  2. ./имя_файла

Чтобы запустить bash-скрипт, через терминал перейдите в папку, где сохранен нужный файл. В первом случае вам нужно просто написать в командной строке bash, за ним имя файла и нажать Enter. Это запустит bash-скрипт.

Во втором случае введите в командную строку ./имя_файла и нажмите Enter. В этой статье мы будем использовать именно этот способ.

Мы поговорим о таких темах:

  • команда echo;
  • комментарии в bash-скриптах;
  • команда ls;
  • объявление и использование переменных в Bash;
  • условные операторы в Bash;
  • циклы в Bash.

Команда echo

Команда echo — основная команда в bash-скриптам. Обычно ее используют для вывода данных — переданных в echo аргументов. Давайте откроем наш файл myscript.sh и воспользуемся командой echo, чтобы напечатать текст в терминале.

#!/bin/bash

echo "Привет всем."
echo "Мы используем команду echo"

Выводом этого скрипта будет текст в командной строке. Echo просто перепечатает его туда.

Комментарии в bash-скриптах

Комментарии — важный аспект в программировании. Это строки программы, которые компьютер игнорирует. Комментарии улучшают читаемость кода и помогают нам лучше понять его смысл. В bash-скриптах допускают как однострочные, так и многострочные комментарии. Однострочные начинаются с символа #, а многострочные — с одинарной кавычки ‘. Символ : используется для добавления новой строки комментария.

Вот пример комментирования в bash-скрипте:

#!/bin/bash

# использование команды echo
# это однострочный комментарий
echo "Привет всем. Это пример однострочного комментария"
: '
а это уже многострочный комментарий
давайте напишем еще одну команду echo
'
echo "Bash — интересная штука!"

Команда ls

Команда ls — самая базовая терминальная команда, так что знать о ней обязательно нужно. Команда ls отображает информацию о файлах и каталогах в файловой системе. Она, естественно, может выполняться с разными аргументами. Давайте напишем команду ls в нашем файле myscript.sh и запустим его. К слову, ls можно выполнять и прямо в терминале.

#!/bin/bash
# использование команды ls
ls

Вывод:

Объявление и использование переменных

Переменные объявляют для того, чтобы затем в них можно было хранить данные. Это важный аспект любого языка программирования. В переменных мы можем хранить какие-то значения или информацию с тем, чтобы использовать это в будущем. В Bash объявлять и использоваться переменные очень просто. Для этого достаточно просто написать имя переменной. Чтобы использовать переменную, перед ней нужно поставить символ $.

Давайте объявим переменную и используем ее в нашем bash-скрипте:

#!/bin/bash

#объявление переменной
VAR="Добро пожаловать в bash!"
#использование переменной
echo $VAR

#объявление переменной num1
num1=10
#объявление переменной num2
num2=20
#подсчет суммы и запись результата в переменную num3
num3=$(($num1+$num2))
#вывод суммы
echo "Сумма:$num3"

Вывод:

Добро пожаловать в bash!‌‌ Сумма: 30

Условный оператор

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

Как и в других языках программирования, в Bash if-оператор используется для оценки условия. Мы можем оценить одно или несколько условий внутри if-блока с помощью операторов OR и AND. Условный блок начинается с ключевого слова if и заканчивается ключевым словом fi. Если условие ложно, выполняется else-блок.

Давайте посмотрим, как условные операторы работают в Bash. Мы объявили переменную, а теперь оцениваем ее значение и принимаем решение на основе этой оценки. Вместо знака < (меньше чем) в Bash используется оператор -lt. Вместо > (больше чем) — -gt, вместое = (равно) — -eq.

#!/bin/bash

#объявление переменной
VAR=7
if [ $VAR -lt 10 ];
then
    echo "Число меньше 10"
else
    echo "Число больше либо равно 10"
fi

Вывод показывает, что «число меньше 10», потому что значение переменной — 7, что несомненно меньше 10.

Число меньше 10

AND и OR в условиях

Мы также можно использовать операторы OR и AND внутри if-блока, чтобы оценить сразу несколько условий. В качестве or используется знак двойной черты ||, в качестве and — &&.

Давайте рассмотрим пример использования OR в Bash:

#!/bin/bash

#объявление переменной
VAR=7
#использование OR в if-блоке
if [[ ( $VAR -gt 5 ) || ( $VAR -eq 7 ) ]]
then
   echo "Число больше 5 или равно 7"
else
   echo "Число не больше 5 и не равно 7"
fi

Вывод:

Число больше 5 или равно 7

Теперь давайте реализуем оператор AND внутри if-блока. В случае с AND оба условия должны быть истинны, чтобы выполнился основной if-блок.

#!/bin/bash

#объявление переменной
VAR=7
#использование оператора AND в if-блоке
if [[ ( $VAR -gt 5 ) && ( $VAR -lt 10 ) ]]
then
    echo "Оба условия верны"
else
    echo "Оба условия не верны"
fi

Вывод:

Оба условия верны

Конструкция else if

Конструкция else if нужна для оценки нескольких условий. В Bash вместо else if используется ключевое слово elif.

Давайте рассмотрим пример использования конструкции else if в Bash. Мы воспользуемся вводом с клавиатуры, для этого понадобится команда read.

#!/bin/bash

echo "Введите число"
read num
#if-блок
if [ $num -gt 10 ];
then
    echo "Число больше 10"
elif [ $num -eq 10 ];
then
    echo "Число равно 10"
elif [ $num -lt 10 ];
then
    echo "Число меньше 10"
else
    echo "Неверно введено число"
fi

Вывод:

Число больше 10

Циклы в Bash

Циклы используются для того, чтобы повторять один и тот же блок кода несколько раз. Основные циклы в Bash — while и for. Мы рассмотрим примеры для обеих конструкций.

Цикл while

Цикл while продолжает выполнения блока кода до тех пор, пока заданное условие не станет ложным.

Синтаксис конструкции while в Bash выглядит следующим образом:

 while [условие]
do
    операторы или команды
done

Если условие истинно, выполняется блок do.

Давайте рассмотрим пример цикла while. Цикл будет выполняться до тех пор, пока значение переменной будет меньше 10. Внутри блока do мы будем увеличивать значение переменной на один.

#!/bin/bash

#объявление переменной
VAR=1
while [ $VAR -le 10 ]
do
    echo "Значение переменной: $VAR"
    #увеличение значения на 1
    (( VAR++ ))
done

Вывод:

Значение переменной равно

Цикл повторяется до тех пор, пока условие не станет ложным.

Цикл for

В общем виде синтаксис цикла for выглядит так:

for (( i=i; i>10; i++))
do
done

Здесь i — это переменная.

Давайте рассмотрим пример использования цикла for. Мы будем увеличивать значение переменной и выводить его каждый круг цикла:

#!/bin/bash
#использование цикла for
for (( i=0; i < 10; i++ ))
do
    #вывод значения переменной
    echo -n "$i "
done

echo "\n"

Вывод:

Перевод статьи: Introduction to Bash for Beginners