Рейтинг@Mail.ru

Наши друзья и партнеры

UnixForum




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

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

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

Подробнее о параметрах Bash

Список параметров

Мы уже обсуждали несколько параметров командной оболочки Bash, которые полезно использовать для отладки скриптов. В этом разделе мы рассмотрим параметры Bash подробнее.

Укажите в команде set параметр -o с тем, чтобы увидеть все установленные для командной оболочки параметры (on - параметр включен, off - параметр выключен):

willy:~> set -o
allexport               off
braceexpand             on
emacs                   on
errexit                 off
hashall                 on
histexpand              on
history                 on
ignoreeof               off
interactive-comments    on
keyword                 off
monitor                 on
noclobber               off
noexec                  off
noglob                  off
nolog                   off
notify                  off
nounset                 off
onecmd                  off
physical                off
posix                   off
privileged              off
verbose                 off
vi                      off
xtrace                  off

Описание каждого параметра смотрите в документации по Bash, в разделе Shell Built-in Commands → The Set Built-in ( Встроенные команды командной оболочки → Настройка встроенных команд). У многих параметров есть их односимвольные сокращения: например, установка параметра xtrace эквивалентна выполнению команды set -x.

Изменение параметров

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

Следующая команда выполняет скрипт в режиме, совместимом с POSIX:

willy:~/scripts> bash --posix script.sh

В случае временного изменения текущей настройки среды или при использовании параметра в скрипте, предпочтительнее использовать команду set. Для включения параметра укажите "-" (тире), а для его отключения - "+":

willy:~/test> set -o noclobber

willy:~/test> touch test

willy:~/test> date > test
bash: test: cannot overwrite existing file

willy:~/test> set +o noclobber

willy:~/test> date > test

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

willy:~> echo $VAR


willy:~> set -u

willy:~> echo $VAR
bash: VAR: unbound variable

Этот параметр также полезен для обнаружения неправильного присваивания значений переменным: та же самая ошибка возникнет, например, в случае, если символьная строка присваивается переменной, которая была явно объявлена как переменная для хранения только целочисленных значений.

В последнем примере, приведенном далее, демонстрируется использование параметра noglob, при установке которого запрещено осуществлять подстановку для специальных символов:

willy:~/testdir> set -o noglob

willy:~/testdir> touch *

willy:~/testdir> ls -l *
-rw-rw-r--    1 willy    willy          0 Feb 27 13:37 *

Предыдущий раздел: Оглавление Следующий раздел:
Алиасы   Подводим итог главы 3

Поделиться: