Мендель Купер - Искусство программирования на языке сценариев командной оболочки

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

Искусство программирования на языке сценариев командной оболочки: краткое содержание, описание и аннотация

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

Данное руководство не предполагает наличие у читателя познаний в области программирования на языке сценариев, однако, быстро восполняет этот недостаток, постепенно, шаг за шагом раскрывая мудрость и красоту UNIX. Это руководство может рассматриваться как учебник, предназначенный для самостоятельного изучения или как справочник по программированию на shell. Руководство снабжено серией хорошо прокомментированных примеров, поскольку лучший путь к изучению языка сценариев -- это написание сценариев.

Искусство программирования на языке сценариев командной оболочки — читать онлайн бесплатно полную книгу (весь текст) целиком

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

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

Интервал:

Закладка:

Сделать

32.1. Неофициальные рекомендации по оформлению сценариев

 Комментируйте свой код. Это сделает ваши сценарии понятнее для других, и более простыми, в обслуживании, для вас.

 PASS="$PASS${MATRIX:$(($RANDOM%${#MATRIX})):1}"

 # Эта строка имела некоторый смысл в момент написания,

 # но через год-другой будет очень тяжело вспомнить -- что она делает.

 # (Из сценария "pw.sh", автор: Antek Sawicki)

Добавляйте заголовочные комментарии в начале сценария и перед функциями.

#!/bin/bash

#************************************************#

# xyz.sh #

# автор: Bozo Bozeman #

# Июль 05, 2001 #

# #

# Удаление файлов проекта. #

#************************************************#

BADDIR=65 # Нет такого каталога.

projectdir=/home/bozo/projects # Каталог проекта.

# ------------------------------------------------------- #

# cleanup_pfiles () #

# Удаляет все файлы в заданном каталоге. #

# Параметры: $target_directory #

# Возвращаемое значение: 0 -- в случае успеха, #

# $BADDIR -- в случае ошибки. #

# ------------------------------------------------------- #

cleanup_pfiles ()

{

if [ ! -d "$1" ] # Проверка существования заданного каталога.

then

echo "$1 -- не является каталогом."

return $BADDIR

fi

rm -f "$1"/*

return 0 # Успешное завершение функции.

}

cleanup_pfiles $projectdir

exit 0

Не забывайте начинать ваш сценарий с sha-bang -- #!/bin/bash .

 Заменяйте повторяющиеся значения константами. Это сделает ваш сценарий более простым для понимания и позволит вносить изменения, не опасаясь за его работоспособность.

 if [ -f /var/log/messages ]

 then

 ...

 fi

 # Представьте себе, что через пару лет

 # вы захотите изменить /var/log/messages на /var/log/syslog.

 # Тогда вам придется отыскать все строки,

 # содержащие /var/log/messages, и заменить их на /var/log/syslog.

 # И проверить несколько раз -- не пропустили ли что-нибудь.

 # Использование "констант" дает лучший способ:

 LOGFILE=/var/log/messages # Если и придется изменить, то только в этой строке.

 if [ -f "$LOGFILE" ]

 then

 ...

 fi

 В качестве имен переменных и функций выбирайте осмысленные названия.

 fl=`ls -al $dirname` # Не очень удачное имя переменной.

 file_listing=`ls -al $dirname` # Уже лучше.

 MAXVAL=10 # Пишите имена констант в верхнем регистре.

 while [ "$index" -le "$MAXVAL" ]

 ...

 E_NOTFOUND=75 # Имена кодов ошибок -- в верхнем регистре,

 # к тому же, их желательно дополнять префиксом "E_".

 if [ ! -e "$filename" ]

 then

 echo "Файл $filename не найден."

 exit $E_NOTFOUND

 fi

 MAIL_DIRECTORY=/var/spool/mail/bozo # Имена переменных окружения

 # так же желательно записывать символами

 # в верхнем регистре.

 export MAIL_DIRECTORY

 GetAnswer () # Смешивание символов верхнего и нижнего решистров

 # удобно использовать для имен функций.

 {

 prompt=$1

 echo -n $prompt

 read answer

 return $answer

 }

 GetAnswer "Ваше любимое число? "

 favorite_number=$?

 echo $favorite_number

 _uservariable=23 # Допустимо, но не рекомендуется.

 # Желательно, чтобы пользовательские переменные не начинались с символа подчеркивания.

 # Так обычно начинаются системные переменные.

 Используйте смысловые имена для кодов завершения.

 E_WRONG_ARGS=65

 ...

 ...

 exit $E_WRONG_ARGS

См. так же Приложение C.

 Разделяйте большие сложные сценарии на серию более коротких и простых модулей. Пользуйтесь функциями. См. Пример 34-4.

 Не пользуйтесь сложными конструкциями, если их можно заменить простыми.

 COMMAND

 if [ $? -eq 0 ]

 ...

 # Избыточно и неинтуитивно.

 if COMMAND

 ...

 # Более понятно и коротко.

... читая исходные тексты сценариев на Bourne shell (/bin/sh). Я был потрясен тем, насколько непонятно и загадочно могут выглядеть очень простые алгоритмы из-за неправильного оформления кода. Я не раз спрашивал себя: "Неужели кто-то может гордиться таким кодом?"

Landon Noll

Глава 33. Разное

Практически никто не знает грамматики Bourne shell-а. Даже изучение исходных текстов не дает ее полного понимания.

Tom Duff

33.1. Интерактивный и неинтерактивный режим работы

В интеракивном режиме, оболочка читает команды, вводимые пользователем, с устройства tty. Кроме того, такая оболочка считывает конфигурационные файлы на запуске, выводит строку приглашения к вводу (prompt), и, по-умолчанию, разрешает управление заданиями. Пользователь имеет возможность взаимодействия с оболочкой.

Сценарий всегда запускается в неинтерактивном режиме. Но, не смотря на это, он сохраняет доступ к своему tty. И даже может эмулировать интерактивный режим работы.

#!/bin/bash

MY_PROMPT='$ '

while :

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

Интервал:

Закладка:

Сделать

Похожие книги на «Искусство программирования на языке сценариев командной оболочки»

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


Отзывы о книге «Искусство программирования на языке сценариев командной оболочки»

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

x