Команда case
Назначение: Управляющая структураcaseобеспечивает выбор одного из нескольких возможных вариантов. Выбор осуществляется путем сравнивания заданного в структуре значения с несколькими возможными образцами. Каждое возможное значение проверяемой переменной связывается с совокупностью операций. Если обнаруживается совпадение, то выполняются соответствующие данному значению операции. Структкраcaseначинается с одноименного ключевого слова, имени переменной и ключевого словаin. Затем следует совокупность образцов. Каждый образец представляет собой регулярное выражение, завершаемое правой круглой скобкой, за которой перечисляются команды, связанные с образцом. Список команд завершается двумя символами “точка с запятой” в отдельной строке, вся командаcaseзавершается ключевым словомesac.
Синтаксис:
case строкаin
образец1)
команды
;;
образец2)
команды
;;
*)
команды по умолчанию
;;
esac
Образец может содержать специальные символы shell:*,[],?и|. Специальный символ?используется для сравнения любого одиночного символа.[]используются для сравнения любого одного символа, помещенногомежду двумя символами и обеспечивает сравнение с любым, попадающим в этот интервал. Символ|это логический операторOR(“ИЛИ”). Специальным символом*можно задать образец для использования по умолчанию. Звездочка обозначает любой образец и работает, таким образом, как вариант, выбираемый по умолчанию. Если все остальные образцы не обнаруживаются, то испоьзуется*, т.е. выполняется вариант по умолчанию. Вариант по умолчанию включать в структуруcaseне обязательно.
Примеры:
Lschoice
#Program to allow the user to select different ways of
#listing files
echo s. List Sizes
echo l. List All File Information
echo c. List C Files
echo –n “Please enter choice:”
read choice
case $choice in
s)
ls –s
;;
l)
ls –l
;;
c)
ls*.c
;;
*)
echo Invalid Option
esac
$ ./lschoice
s. List Sizes
l. List All File Information
c. List C Files
Please enter choice: c
main.c lib.c file.c
$
В приведенном примере прогамме lschoiceпользователю предлагается указать вариант вывода списка файлов. Если пользователь неправильно выбрал вариант, программа сообщит ему об этом.
Команда while
Назначение: Циклwhileиспользуется для повторения команд. Этот цикл начинается с ключевого словаwhile, за которым следует команда. В следующей строке должно стоять словоdo. Конец цикла обозначается ключевым словомdone.
Синтаксис:
whileкоманда
do
команды
done
Примеры:
myname
again=yes
while[“$again=yes”]
do
echo –n “Pleas enter a name:”
read name
echo “The name you entered is $name”
echo –n “Do you wish to continue?”
read again
done
echo Good-bye
$ ./myname
Pleas enter a name: George
The name you entered is George
Do you wish to continue? yes
Pleas enter a name: Robert
The name you entered is Robert
Do you wish to continue? No
Good-bye
В приведенном примере mynameпользователю предлагается ввести имя. Это имя затем выводиться на экран. Управление циклом осуществляется путем проверки значения переменнойagainс помощью командыtest, заданной в виде квадратных скобок.
