Брайан Керниган - UNIX — универсальная среда программирования

Здесь есть возможность читать онлайн «Брайан Керниган - UNIX — универсальная среда программирования» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 1992, ISBN: 1992, Издательство: Финансы и статистика, Жанр: ОС и Сети, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

UNIX — универсальная среда программирования: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «UNIX — универсальная среда программирования»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
.
Для программистов-пользователей операционной системы UNIX.

UNIX — универсальная среда программирования — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «UNIX — универсальная среда программирования», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

$ cx test Сделаем ее выполняемой

$ which which Попробуем which теперь

hello Неудача!

./which

$

Вывод: требуется больший контроль. Можно запустить команду which(если нет команды testв текущем каталоге), чтобы определить полное имя для testи задать его явно. Но это не лучшее решение, поскольку команда testможет присутствовать в различных каталогах в разных версиях системы, а команда whichзависит от sedи echo, так что необходимо указать и их полные имена. Можно поступить проще — установить значение PATHв командном файле так, чтобы поиск команд осуществлялся только в /binи /usr/bin. Конечно, это возможно только в команде which, причем прежнее значение PATHследует сохранить для определения последовательности каталогов при поиске.

$ cat which

# which cmd: which cmd in PATH is executed, final version

opath=$PATH

PATH=/bin:/usr/bin

case $# in

0) echo 'Usage: which command' 1>&2; exit 2

esac

for i in `echo $opath | sed 's/^:/.:/

s/::/:.:/g

s/ :$/:./

s/:/ /g'`

do

if test -f $i/$1 # this is /bin/test

then # or /usr/bin/test only

echo $i/$1

exit 0 # found it

fi

done

exit 1 # not found

$

Теперь команда whichвыполняется даже в том случае, если есть "поддельная" команда test( sedили echo) среди каталогов, входящих в PATH.

$ ls -l test

-rwxrwxrwx 1 you 11 Oct 1 06:55 testВсе еще здесь

$ which which

/usr/you/bin/which

$ which test

./test

$ rm test

$ which test

/bin/test

$

В языке shellимеются две операции, объединяющие команды ||и &&, использование которых часто более компактно и удобно, чем оператора if. Например, операция ||может заменить некоторые операторы if:

test -f имя_файла || echo имя_файла не существует

эквивалентно

if test ! -f имя_файла! обращает условие

then

echo имя файла не существует

fi

Операция ||, несмотря на свой вид, не имеет ничего общего с конвейерами — это обычная операция, означающая ИЛИ. Выполняется команда слева от ||. Если ее код завершения 0 (успех), справа от ||команда игнорируется. Если команда слева возвращает другое значение (неудача), выполняется команда справа, и значение всего выражения есть код завершения правой команды. Иными словами, ||представляет собой обычную операцию ИЛИ, которая не выполняет свою правую часть, если левая часть завершилась успешно. Соответственно &&есть обычная операция И, выполняющая свою правую часть, только если левая часть завершилась успешно.

Упражнение 5.4

Почему в команде whichперед выходом из нее не восстанавливается значение PATHиз opath?

Упражнение 5.5

Если в языке shellиспользуется esacдля завершения оператора caseи fiдля завершения оператора if, почему для завершения оператора doприменяется done?

Упражнение 5.6

Введите в команду whichфлаг , чтобы выводились все файлы из PATH, а не только первый найденный.

Подсказка : match='exit 0'

Упражнение 5.7

Модифицируйте команду whichтак, чтобы она учитывала встроенные в язык shellкоманды типа exit.

Упражнение 5.8

Модифицируйте команду whichтак, чтобы она проверяла права доступа файлов. Как изменить ее для получения диагностического сообщения, если файл не удалось найти?

5.3 Циклы whileи until: контроль входа в систему

В гл. 3 цикл forиспользовался для нескольких итеративных программ. Обычно цикл forохватывает множество имен файлов, как в 'for i in * .с', или все аргументы командного файла, как в 'for i in $*'. Но циклы в языке shellмогут быть более общими, чем в этих идиомах, например цикл forв команде which.

Имеются три вида циклов: for, whileи until. Чаще всего используется цикл for. В нем выполняется последовательность команд (тело цикла) для каждого элемента из множества слов. В большинстве случаев множество образуют просто имена файлов. В циклах whileи untilконтроль над выполнением тела цикла осуществляется с помощью кода завершения команды. Тело цикла выполняется до тех пор, пока команда условия не вернет ненулевой код для whileили нуль для until. Циклы whileи untilидентичны, за исключением кода завершения команды.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «UNIX — универсальная среда программирования»

Представляем Вашему вниманию похожие книги на «UNIX — универсальная среда программирования» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «UNIX — универсальная среда программирования»

Обсуждение, отзывы о книге «UNIX — универсальная среда программирования» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x