UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
$Правила получения значений переменных приведены в табл. 5.3. Возвращаясь к нашему исходному примеру
t=${1-60}видим, что
t$1$var | Значение varvar |
${var} | То же; полезно, если за именем переменной следует буквенно-цифровая строка |
${var-thing} | Значение varthing$var |
${var=thing} | Значение varthingvar$varthing |
${var?строка} | Если var$varvar: parameter not set |
${var+thing} | thing$var |
Таблица 5.3: Получение значений переменных в языке
Обратите внимание на реализацию команд
truefalse/usr/bin/binИзмените команду
watchfor'joe|mary'Напишите версию команды
watchwhocommawkНапишите версию команды
watchwhowhoshellwatchwhocheckmail&В чем состоит различие между пустой командой языка
shell#5.4 Команда
trapЕсли во время выполнения команды
watchwho/tmpwatchwhoПри нажатии клавиши DEL всем процессам, запущенным с этого терминала, посылается сигнал прерывания. Аналогично в случае отключения посылается сигнал отбоя. Существуют и другие сигналы. Если в программе не предусмотрены специальные действия по обработке сигналов, то указанные сигналы прекращают ее выполнение. Интерпретатор защищает программы, запущенные с помощью
&В гл. 7 сигналы рассматриваются подробнее, но для работы с ними на языке
shelltraptrap последовательность_команд список_номеров_сигналовПоследовательность команд — единый аргумент, поэтому его почти всегда нужно брать в кавычки. Номера сигналов обозначаются небольшими целыми числами, например, 2 соответствует сигналу, возникающему при нажатии клавиши DEL, а 1 — сигналу, возникающему при отключении от сети. Номера сигналов, наиболее часто используемых в
shell| 0 | Выход из интерпретатора (по любой причине, включая конец файла) |
| 1 | Отбой |
| 2 | Прерывание (клавиша DEL) |
| 3 | Останов (ctl-; вызывает распечатку содержимого памяти программы) |
| 9 | Уничтожение (нельзя перехватить или игнорировать) |
| 15 | Окончание выполнения; сигнал по умолчанию, производимый kill(1) |
Таблица 5.4: Номера сигналов в интерпретаторе
Для удаления временных файлов в команде
watchwhotrap...trap 'rm -f $new $old; exit 1' 1 2 15while:...Последовательность команд, образующих первый аргумент команды
traptrapexitshelltraptrap-frm
