KTNI_Козлов(ответы) / 14_SHELL
.docкоманды
*)
команды, заданные по умолчанию
esac
Цикл while. Циклическая команда while используется для повторения команд. Цикл начинается словом while, за которым идет команда Linux, в следующей строке используется ключевое слово do, по окончанию цикла используется слово done. Далее покажем синтаксис команды while:
while команда Linux
do
команда(ы)
done
Приведем пример использования цикла while в скрипте по выбору напитков mydrink .
mydrinks
again=yes
while [ "$again" = yes ]
do
echo -n "Please enter your favorite drink: "
read drink
echo "The drink you entered is $drink"
echo -n "Do you wish to continue?
read again
done
echo Good-bye
Выполнение скрипта mydrink .
$ mydrink
Please enter your favorite drink: Juice
The drink you entered is Juice
Do you wish to continue? yes
Please enter your favorite drink: Milk
The name you entered is Milk
Do you wish to continue? no
Good-bye
Конструкция for-in. Конструкция for-in предназначена для последовательного обращения к значениям, перечисленным в списке. Данная связка включает два операнда — переменная и список значений. Каждое значение из списка поочередно присваивается переменной конструкции for-in. Конструкция является циклом и каждой переменной присваивается новое значение из списка. Полный цикл оканчивается при достижении конца списка. Основа цикла for-in начинается ключевым словом do и завершается ключевым словом done. Покажем синтаксис цикла for-in.
for переменная in перечень значений
do
команды
done
В сценарии userprocess пользователь просто выводит список процессов перечисленных пользователей. Список пользователей представляет собой список значений, используемых в цикле for-in. Каждый пользователь последовательно присваивается переменной men. Значение переменной men используется при перенаправлении данных с команды вывода перечня процессов на последовательное отображение процессов перечисленных пользователей.
userprocess
for men in antonk kras denis
do
echo –n "Process list user: “
ps –ef | grep $men
echo –n “All done.”
done
Выполнение скрипта userprocess .
Цикл for. Конструкция for удобна при использовании аргументов командной строки при вызове файла shell в качестве списка значений for. Все аргументы из этого списка автоматически присваиваются переменной, используемой в команде for. В первом цикле переменной присваивается значение первого аргумента, во втором цикле — значение второго аргумента, в третьем – значение третьего аргумента и т. д. Покажем пример использования цикла for на следующем скрипте. Скрипт usert используется совместно с аргументами, в роли которых выступают имена пользователей.
usert
for userr do
echo “Hello $userr”
done
Пример выполнения работы
Задание. С помощью командного интерпретатора BASH напишите файл – сценария, позволяющий отображать процессы тех пользователей, имена которых указаны в начальной части скрипта.
Файл – сценария.
userprocess
for men in antonk kras denis
do
echo –n "Process list user: “
ps –ef | grep $men
echo –n “All done.”
