Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #51, ФЕВРАЛЬ 2005 г.

Шелл для кодера

Андрей Семенюченко

Спецвыпуск: Хакер, номер #051, стр. 051-082-5


bash –x anacron

В результате получили результаты выполнения команд, а также сообщение о синтаксической ошибке в строке №15 сценария.

Дополнительные возможности bash

На самом деле возможности Bash сильно отличаются от умений многих других интерпретаторов, именно поэтому этот интерпретатор в настоящее время стал стандартом де-факто в Linux-системах. Другим не менее распространенным шеллом является sh, который по умолчанию поставляется со всеми системными дистрибутивами. Но по удобству использования и по функциональности sh сильно уступает bash, поэтому последний набирает все больше голосов как среди программистов и администраторов, так и среди рядовых пользователей. Ниже приведен список (далеко не полный!) возможностей, имеющихся у bash 2.0 и отсутствующих у sh:

- наличие оператора выбора select;

- зарезервированное слово function для оформления функций;

- ведение истории команд;

- специальный синтаксис оператора цикла for для использования совместно с арифметическими операциями: for ((expr1 ; expr2; expr3 )); do list; done;

- перенаправление вывода: <>, &>, >|;

- режим posix для изменения поведения команд согласно стандарту

- расширение регулярных выражений для выполнения действий с подстроками (${p%[%]w}, ${p#[#]w});

- ловушка DEBUG trap;

- ловушка ERR trap;

- egrep-подобное расширение для поиска значения по образцу;

- возможность поиска без учета регистра;

- перенаправление в /dev/fd/N, /dev/stdin, /dev/stdout, /dev/stderr,

/dev/tcp/host/port, /dev/udp/host/port

Кроме того, bash имеет большое количество полезных переменных окружения: BASH, BASH_VERSION, BASH_VERSINFO, UID, EUID и т.п.

Подводим итоги

Как всегда после любой работы, нужно собрать урожай. А его немало: подробно рассмотрели код сценария автозапуска демона-планировщика anacron, убедились в силе и простоте программирования на скриптовых языках, узнали о нововведениях в bash 3.0 и об отладке только что написанного скрипта даже при отсутствии специальных возможностей отладки в старых версиях bash. Надеюсь, теперь ты избавился от фобии правки кодов имеющихся скриптов и даже сам можешь сварганить нечто подобное без особых проблем. Удачи!

Скрипты везде и всюду

Может быть, ты даже не подозреваешь, что языки описания сценариев используются практически везде. Любая операционная система уже в начале своей загрузки использует специальные текстовые файлы для настройки и оптимизации, а это и есть сценарии. Не забывай о роли скриптовых языков в web-программировании. В среде Linux повсеместно применяется мегапопулярное программирование на шелл, которое подходит для таких задач, как резервирование данных, обработка текста, управление учетными записями пользователей, настройка сетевого соединения, создание сценариев автозапуска, выполнение арифметических операций и многое другое.

Код сценария anacron

#!/bin/sh

# Startup script for anacron

#

# chkconfig: 2345 41 59

# description: Run cron jobs that were left out due to downtime

# Source function library.

. /etc/init.d/functions

Назад на стр. 051-082-4  Содержание  Вперед на стр. 051-082-6