UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Если вы написали программу на языке
shell
shell
5.1 Совершенствование команды
cal
Типичная задача программирования на языке
shell
cal(1)
$ cal
usage: cal [month] year
$ cal october
Bad argument
$ cal 10 1983
October 1983
S M Tu W Th F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
$
Досадно, что месяц нужно задавать числом, и к тому же, как оказалось, команда
cal 10
Указанные выше неудобства связаны с тем, что взаимодействие пользователя с программой было реализовано без привлечения команды
cal
bin
cal
Первый шаг разработки — определить функции усовершенствованной команды
cal
cal
Язык
shell
case
case слово in
шаблон) команды ;;
шаблон) команды ;;
...
esac
В операторе
case
;;
;;
В нашей версии команды определяется число заданных аргументов, обрабатываются названия месяцев, затем происходит обращение к настоящей команде
cal
$#
$# | Число аргументов |
$* | Все аргументы, передаваемые интерпретатору |
[email protected] | Аналогично $* |
$- | Флаги, передаваемые интерпретатору |
$? | Возвращение значения последней выполненной команды |
$$ | Номер процесса интерпретатора |
$! | Номер процесса последней команды, запущенной с помощью & |
$НOМЕ | Аргумент, принятый по умолчанию для команды cd |
$IFS | Список символов, разделяющих слова в аргументах |
$MAIL | Файл, изменение которого приводит к появлению сообщения "you have a mail" ("У вас есть почта") |
$PATH | Список каталогов, в которых осуществляется поиск команд |
$PS1 | Строка приглашение, по умолчанию принята '$' |
$PS2 | Строка приглашение при продолжении командной строки, по умолчанию принята '>' |
Таблица 5.1: Встроенные переменные интерпретатора
$ cat cal
# cal: nicer interface to /usr/bin/cal
case $# in
0) set `date`; m=$2; y=$6 ;; # no args: use today