Bash учебное пособие. Часть 5: Структурные конструкции и команда test

Структурные конструкции в bash

В bash вы можете использовать команду if для проверки состояния. Как пример, предположим что вам необходимо сделать бакап в пятницу ночью и для этого вы должны выполнить команду mysqldump.Структура тогда будет такой —

If today Friday ---> then execute mysqldump
		|
		|
	Otherwise ---> echo an error message on screen

Немного о логике

Нужно помнить, что структура выполнения скрипта последовательная, тоесть, пока не будет завершено какое-то действие следующее действие не начнет выполнятьсяю
Каждая команда и/или выполняеться один раз в последовательном порядке
Вы не сможете написать комплексное приложение используя последовательные скрипты
Тем не мение, с помощью команды if вы сможете выборочно запускать определенные команды или части вашего скрипта
При помощи команды if вы можете сделать ваш скрипт более инрактивным и сообзать об возникших ошибках

Нужно так же четко понимать что такое «состояние». Состояние есть не что иное как результат выражения в логической форме, тоесть ложь или истина(true, false). Тоесть, другими словами состаяние может быть правдой или ложью. Простейший пример :

echo $(( 5 < 2 ))

результатом будет 0. bash сравнивает два числа и возвращает результат правда или ложь. В нашем случаи результа — ложь. Необходимо запомнить, что в bash-e 0 это ложь, а 1 это правда.

Команда Test

Команда test используеться для проверки состояния фалов, сравнения строк и арефметических сравнений.

Синтаксис соманды test:

test condition

или

test condition && true-command

или

test condition || false-command

или

test condition && true-command || false-command

Давайте расмори два таких пример. Введите в командной строке:

test 5 -gt 2 && echo "Yes"  
test 1 -gt 2 && echo "Yes"

В первом случаи, так как 5 больше 2 — правда, мы увидим «Yes». Во втором, так как 1 больше 2 — ложь, то, мы ничего не увидим. Тоесть, в случаи если состояние равно 1 у нас выполняеться команда стоящая после &&. Если вам необходимо выполнять какую-то команду в случаи состояния равного 0, то необходимо использовать ||. Покажу вам на примере:

test "$a" == "$b" && echo "Yes" || echo "No"

В данном примере если $a равно $b то выполниться echo «Yes» и на экране мы увидим «Yes», если же $a не равно $b, то выполниться echo «No» и на экране мы увидим «No»

Операторы команды test при числовом сравнении:

Оператор	Синтаксис 					Описание  
eq 		INTEGER1 -eq INTEGER2		INTEGER1 эквивалентно INTEGER2 
ge 		INTEGER1 -ge INTEGER2		INTEGER1 больше или эквивалентно INTEGER2 
gt 		INTEGER1 -gt INTEGER2		INTEGER1 больше INTEGER2 
le 		INTEGER1 -le INTEGER2		INTEGER1 меньше или эквивалентно INTEGER2 
lt 		INTEGER1 -lt INTEGER2		INTEGER1 меньше INTEGER2 
ne 		INTEGER1 -ne INTEGER2	 	INTEGER1 не эквивалентно INTEGER2 
-z		-z STRING					Правда если длинна STRING равна 0
-n		-n STRING					Правда если длинна STRING не 0
==		STRING1 == STRING2			Правда если STRING1 идентично STRING2
!=		STRING1 != STRING2			Правда если STRING1 не идентично STRING2
<	   STRING1 < STRING2		      Правда если STRING1 лексически отсортировано перед STRING2
>	   STRING1 > STRING2		      Правда если STRING1 лексически отсортировано после STRING2

Часть 1: скрипт Hellow World
Часть 2: Переменные
Часть 3: Специальные параметры
Часть 4: Одинарные и двойные кавычки. Математические операции
Часть 5: Структурные конструкции и команда test
Часть 6: Структура If…then…else
Часть 7: Подмножества и части строк. Размеры

Случайные Статьи

Loading…


Количество просмотров :13243

Оставьте коментарий