UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Введите в команду
which-аPATHПодсказка:
match='exit 0'Модифицируйте команду
whichshellexitМодифицируйте команду
which5.3 Циклы
whileuntilВ гл. 3 цикл
forfor'for i in * .с''for i in $*'shellforwhichИмеются три вида циклов:
forwhileuntilforwhileuntilwhileuntilwhileuntilНиже приведены основные формы каждого цикла:
for i in список словdo тело цикла, $i последовательно получает значения элементовdonefor i (явно перечисляются аргументы командного файла, т.е. $*)do тело цикла, $i последовательно получает значения аргументовdonewhile командаdo тело цикла выполняется, пока команда возвращает истинаdoneuntil командаdo тело цикла выполняется, пока команда возвращает ложьdoneВторая форма цикла
for$*Командой условия, управляющей циклами
whileuntilwhilewhile sleep 60do who | grep marydoneКоманда
sleepuntiluntil who | grep mary do sleep 60doneТеперь условие представляется более интересным. Если Мэри вошла в систему, то
'who | grep mary'whogrepВ заключение мы можем оформить команду, дав ей имя и установив в системе:
$ cat watchfor# watchfor: watch for someone to log inPATH=/bin:/usr/bin case $# in0) echo 'Usage: watchfor person' 1>&2; exit 1esacuntil who | egrep "$1"do sleep 60done$ cx watchfor$ watchfor youyou tty0 Oct 1 08:01 $ mv watchfor /usr/you/bin $Мы заменили
grepegrep$ watchfor 'joe | mary'и следить за несколькими пользователями.
Более сложный пример: можно контролировать вход в систему и выход из нее всех пользователей и сообщать обо всех фактах входа или выхода. Это можно рассматривать как некоторое дополнение к команде
whowhowho/tmp$$watchfor":"
