Операторы в bash

Операторы в языке Bash.


Операторы сравнения

Арифметические операторы состоят из двух символов перед которыми стоит дефис. Ниже представлены арифметические операторы и в скобках их аналогия из языка С.

-lt - less then - меньше (<)
-gt - greater then - больше (>)
-le - less or equal - меньше или равно (<=)
-ge - greater or equal - больше или равно (>=)
-eq - equal - равно (==)
-ne - not equal - не равно (!=)

Если знакомы с английским языком, то запомнить будет несложно.

Операторы сравнения строк запомнить легче.

STR1 = STR2 - равно
STR1 != STR2 - не равно
STR1 < STR2 - меньше
STR1 > STR2 - больше

Оператор if

Для проверки условий в скрипте предназначена конструкция if. Общий синтаксис конструкции if в упрощенном виде, следующий:

if [ условие ]; then

блок команд

else

блок команд

fi

Оператор for

Оператор цикла for применяется для перебора последовательности значений.

Данный код выведет по порядку символы 1, 2, 3, a, b, c

#!/bin/bash

for i in 1 2 3 a b c

do

echo i=$i

done

Данный код выведет по порядку 1, 2, 3, 4, 5

#!/bin/bash
for ((i=1;i<6;i++))
do
echo i=$i
done

Оператор wile

Еще один оператор цикла, будет выполняться пока выражение не приймет заданное значение.

Код будет выводить значения i пока i<7

#!/bin/bash
i=1
while [ $i -lt 7 ]
do
echo $i
let i=i+1
done

 Оператор case

Оператор сравнения, который сравнивает значение переменной с задпнным шаблонами, и в зависимости от совпадения запускает различный код.

#!/bin/bash
case $1 in
[a,b,c,d]) #значения заданные в шаблоне явно
echo "a b c d"
;;
[0-9]) #последовательность числовых значений
echo "Это цифра $1"
;;
[a-z]) #последовательность
echo "Это буква $1"
;;
??)
echo "Это два любых символа"
;;
stop|restart|start)
echo "Это слово stop или restart или start"
;;
*)
echo "Другое значение"
;;
esac

Оператор read

Этот оператор служит для приема данных от пользователя.

#!/bin/bash
echo Введите, пожалуйста, Ваше имя
read NAME
echo "Привет, $NAME!"