UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
1) m=$l; set `date`; y=$6 ;; #1 arg: use this year*) m=$1; y=$2 ;; #2 args: month and yearesaccase $m injan*|Jan*) m=1 ;;feb*|Feb*) m=2 ;;mar*|Mar*) m=3 ;;apr*|Apr*) m=4 ;;may*|May*) m=5 ;;jun*|Jun*) m=6 ;;jul*|Jul*) m=7 ;;aug*|Aug*) m=8 ;;sep*|Sep*) m=9 ;;oct*|Oct*) m=10 ;;nov*|Nov*) m=11 ;;dec*|Dec*) m=12 ;;[1-9]|10|11|12) ;; # numeric month*) y=$m; m="" ;; # plain yearesac/usr/bin/cal $m $y # run the real one$В первом операторе case проверяется число аргументов
$#mycalПервый оператор
caseset `date`Хотя это сразу и не очевидно, легко установить действие команды, запустив ее:
$ dateSat Oct 1 06:05:18 EDT 1983$ set `date`$ echo $1Sat$ echo $406:05:20$Итак, мы имеем дело с встроенной командой интерпретатора, возможности которой многообразны. При отсутствии аргументов она выдает, как указывалось в гл. 3, значения переменных окружения. В случае обычных аргументов переопределяются значения
$1$2set `date`$1$2caseКоманда
set-v-хshellТеперь осталось только перевести значение месяца, если оно представлено в строковом виде, в число. Это делается с помощью второго оператора
case|caseegrepмалый|большой[jJ]an*date* | Задает любую строку, включая пустую |
? | Задает любой одиночный символ |
[ccc] | Задает любой из символов в ccc [a-d0-3][abcd0123] |
"..." | Задает в точности ...'...' |
c | Задает с |
a|b | Только для выражений выбора; задает аb |
/ | Для имен файлов; соответствует только символу / |
. | Если это первый символ в имени файла, то сопоставляется только с явно заданной точкой в выражении |
Таблица 5.2: Правила сопоставления шаблонов в интерпретаторе
Два последних варианта второго оператора
casecaseНаконец, в последней строке вызывается
/usr/bin/calcalcal$ dateSat Oct 1 06:09:55 EDT 1983$ calOctober 1983
