Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Руководство по Bash для начинающих
Назад Глава 2: Пишем и отлаживаем скрипты Вперед

Основы скриптов

Какая командная оболочка запускает скрипт?

Когда скрипт запускается в подоболочке, вы должны указать, какая командная оболочка должна запустить скрипт. Тип оболочки, для которой вы написали скрипт, может не оказаться оболочкой, используемой в вашей системе по умолчанию, так что команды, которые вы вводите, могут привести к ошибкам, если они выполняются неверной оболочкой.

В первой строке скрипта указывается оболочка, которая должна быть запущена. Первыми двумя символами в первой строке должны быть символы "#!", затем следует указать путь к командной оболочке, которая должна интерпретировать команды, следующие далее. Пустые строки также считаются строками, так что не начинайте свой скрипт с пустой строки.

В данном курсе все скрипты должны начинаться со следующей строки:

#!/bin/bash 

Как уже указывалось ранее, это означает, что исполняемый файл Bash можно найти в директории /bin.

Добавляем комментарии

Вы должны понимать, что, возможно, будете не единственным, кто будет читать ваш код. Большинство пользователей и системных администраторов запускают скрипты, которые написаны другими. Если читатели захотят понять, как был написан код, то для них, возможно, будут полезны комментарии.

Комментарии также облегчат вашу собственную жизнь. Скажем, вы прочитали много страниц документации с тем, чтобы добиться от некоторой команды определенного результата, который вы использовали в вашем скрипте. Если вам потребуется изменить скрипт через несколько недель или месяцев, вы можете уже забыть, как эта команда работает, в случае, если у вас отсутствуют комментарии о том, как вы это сделали и почему вы это сделали.

Возьмите пример script1.sh и скопируйте его в файл commented-script1.sh, который мы отредактируем так, чтобы отразить в комментариях то, что делает скрипт. Все, что командная оболочка обнаружит в строке после символа диез (#), игнорируется и будет видно только при редактировании файла скрипта:

#!/bin/bash
# Данный скрипт очищает экран терминала, выдает в терминал приглашение и показывает информацию о пользователях,
# подключенных в текущий момент.  Устанавливаются значения для двух переменных, которые выдаются в терминал.

clear                           # очищает окно терминала

echo "The script starts now."

echo "Hi, $USER!"               # символ доллара используется для получения значения переменной
echo

echo "I will now fetch you a list of connected users:"
echo                                                    
w                               # показывается, кто зарегистрирован в системе
echo                            # и что каждый из них делает

echo "I'm setting two variables now."
COLOUR="black"                                  # устанавливает значение для переменной в локальной оболочке
VALUE="9"                                       # устанавливает значение для переменной в локальной оболочке
echo "This is a string: $COLOUR"                # показывается содержимое переменной 
echo "And this is a number: $VALUE"             # показывается содержимое переменной 
echo

echo "I'm giving you back your prompt now."
echo

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

В качественном скрипте первые строки, как правило, являются комментариями, описывающими что следует ожидать от скрипта. Затем для ясности необходимо прокомментировать каждый большой фрагмент скрипта. Например, скрипты init в Linux, которые расположены в директории init.d в вашей системе, как правило, прокомментированы хорошо, поскольку их должны читать и редактировать все, кто работает с системой Linux.


Предыдущий раздел: Оглавление Следующий раздел:
Создание и запуск скрипта   Отладка скриптов Bash