Команды exit и return
Назначение: Командаexitзавершает выполнениеshell-программы и формирует код возврата. Если команда задана без аргументов, то код возврата устанавливается равным коду возврата последней команды, выполненной передexit.
Команда returnостанавливает выполнение функции и возвращает в вызвавшую процедуру аргумент, содержащий код завершения. Если аргумент не указан, то код зовершения соответствует последней команде, выполненной в функции перед выходом из нее. Когда прекращение выполнения функции обусловлено какими-то внешними по отношению к ней причинами, то это равносильноexit.
Синтаксис:
$ exit аргумент
$ return аргумент
Примеры:
$ cat exit_test
echo exiting program now
exit99
$ exit_test
exiting program now
$echo $?
99
$cat rtn_test
function rtn
{
echo return from function
return 99
}
$rtn_test
returnfrom function
$echo $?
99
Команда let
Назначение:Командаletдает возможность использовать в shell-программах арифметические выражения. Команда работает в формате длинного целого. При построении арифметических выражений можно использовать операторы (даны в прорядке убывания приоритета выполнения):
ОператорОписание
-Одноместный минус (операция изменения знака
арифметического выражения
!Логическое отрицание
* / %Умножение, деление, остаток от деления
+ -Сложение, вычитание
<+ >= < >Сравнение
== !=Равно, не равно
=Присвоение
()Скобки используются для изменения порядка вычисления
Синтаксис:
$letвыражение или((выражение))
Примеры:
$ x=10 $ x=12
$ y=2 $ let “x < 10”
$ let x=x+2 $ echo $?
$echo $x 1
12 $ ((x > 10))
$ let “x=x / (y+1) “ $ echo $?
$ echo $x 0
$if (( x > 10 ))
$ (( x=x+1 )) > then echo x greater
$ echo $x > else echo x not greater
5 fi
x greater
Команда if-then
Назначение: Управляющая структураifставит условие для выполнения команд. Этим условием является код заверешения какой-то конкретной команды. Если она выполнена успешно (т.е. код завершения равен нулю), то команды внутри структурыifвыполняются. Если код завершения отличается от нуля, то команды внутри структурыifне выполняются. Командаif-thenначинается ключевым словомif. За ним идет команда, код завершения которой проверяется. После нее в отдельной строке стоит ключевое словоthen. Затем может идти любая совокупность команд. Завершает команду ключевое словоfi. Иногда нужно выбрать один из двух вариантов, руководствуясь тем, успешно или нет была выполнена команда. Ключевое слово elseпозволяет управляющей структуреifвыбрать один из двух вариантов. Если команда завершена успешно, то выполняются команды, следующие за ключевым словомthen. В противном случае выполняются команды, следующие за ключевым словомelse.
Синтаксис:
ifкоманда
then
Команды
else
Команды
fi
Примеры:
elsels
echo Enter s to list file sizes,
echo otherwise all file information is listed
echo –n “Please enter options:”
read choice
if[ “$choice”=s]
then
ls –s
else
ls –l
fi
echo Good-bye
$ ./elsels
Enter s to list file sizes,
otherwise all file information is listed
Please enter options: s
total 2
1 monday 2 today
Good-bye
$
В сценарии elselsкомандаlsвыполняется для получения списка файлов в двух вариантах – в порядке убывания их размеров или с представлением всей информации о каждом файле. Если пользователь вводитs, файлы перечисляются по размеру, в противном случае выводится вся информация о файлах.
