Интерпретатор командного языка shell
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: реферат роль, сочинение на тему зимой
| Добавил(а) на сайт: Podkol'zin.
Предыдущая страница реферата | 1 2 3 4
2.
expr $a : '.*/(.*)' | $a- выделяет из имени файла короткое имя (т.е. из /usr/util/ena выделяется ena). Внимание, одиночный символ / будет воспринят как знак операции деления.
3.
expr $VAR : '.*'- получение количества символов переменной VAR.
В качестве побочного эффекта expr возвращает следующие коды завершения:
0 | - если выражение не нуль и не пустая строка |
1 | - если выражение нуль или пустая строка |
2 | - для некорректных выражений |
Команда expr также выдает следующие сообщения об ошибках:
syntax error | - для ошибок в операторах или операндах |
non-numeric argument | - для попыток применения арифметических операций к нечисловым строкам |
Допустим, что мы хотим сравнить значение переменной a с каким-либо символом, имеющим для expr особый смысл, например, со знаком равенства. Пусть $a на самом деле является знаком равенства. Так как аргументы предварительно обрабатываются shell'ом, то команда
expr $a = '='будет воспринята как
expr = = =что синтаксически некорректно. В подобных случаях надо пользоваться таким приемом:
expr X$a = X=т.е. добавлением некоторого символа к обеим строкам, что никак не влияет на результат сравнения, однако позволяет избежать синтаксической ошибки.
5.3. Команда enaКоманда ena позволяет получить части полного имени файла. Первый аргумент - флаг, второй - имя файла. Команда различает следующие флаги:
-n | - имя файла без расширения |
-f | - имя файла с расширением |
-e | - расширение |
-d | - имя директории |
-p | - если имя файла начинается с . или .. , то эти символы выделяются из имени |
Ниже приводится текст программы ena, хранящийся в /util/ena.
# Get part of pathname case $1 in -n ) expr $2 : '.*/(.*)[.].*' | $2 : '(.*)[.].*' | $2 ;; -f ) expr $2 : '.*/(.*)' | $2 ;; -e ) expr $2 : '.*([.][^./]*)' | ' ' ;; -d ) expr $2 : '(.*)/.*' | $2 ;; -p ) expr $2 : '([.])/.*' | $2 : '([.][.])/.*' | ' ' ;; * ) echo "error: unknown part of pathname $1" exit 2 ;; esacСкачали данный реферат: Занин, Шапкин, Anfija, Jankov, Polushin, Набойченко, Meledin.
Последние просмотренные рефераты на тему: курсовые работы, сообщение, цивилизация реферат, выборочное изложение.
Категории:
Предыдущая страница реферата | 1 2 3 4