В условных конструкциях сценариев можно использовать конструкцию test. Он может быть записан в формате test выражение или [выражение]. Последнее является конструкцией, в которой записывается операция сравнения с использованием приведенных выше обозначений. Приведем пример использования test
Текст сценария scr7
РЕЗУЛЬТАТЫ и пояснения
#!/bin/bash
# 7
clear
echo
a=test
b=TEST
c=test
test $a = $b
echo " test 1 run cod " $?
test $a = $c
echo " test 2 run cod " $?
C1=234
C2=234
[ $C1 -eq $C2 ]
echo " test 3 eq " $?
[ $C1 = $C2 ]
echo " test 4 = " $?
let d=$C1
[ $d = 234 ]
echo " test 5 = " $?
[ $d -eq 234 ]
echo " test 6 eq " $?
echo press key
read q
Если сценарий вызвать следующим образом,
scr7
то получим следующие результаты.
test 1 run cod 1
test 2 run cod 0
test 3 eq 0
test 4 = 0
test 5 = 0
test 6 eq 0
press key
В языке сценариев оболочки используются операторы цикла. Они бывают трех типов. Первый из них записывается следующим образом:
Whilе условие
do
Команды
Done
Пример записи оператора цикла в форме whilе для решения задачи вычисления факториала числа 5 может выглядеть так.
Текст сценария scr8
РЕЗУЛЬТАТЫ и пояснения
#!/bin/bash
let p=5
let i=1
let f=1
while [ $i -le $p ]
do
let f=f*i
let i=i+1
done
echo " $p $f"
echo
echo press key
read q
Если сценарий вызвать следующим образом,
scr8
то получим следующие результаты.
5 120
press key