|
Поиск по сайту:
Главная
О проекте
Web-мастеру
HTML & JavaScript
SSI
Perl
PHP
XML & XSLT
Unix Shell
MySQL
Безопасность
Хостинг
Другое
|
|
Глава 30. Необязательные параметры (ключи)
Необязательные параметры -- это дополнительные ключи (опции), которые оказывают влияние на поведение сценария и/или командной оболочки.
Команда set позволяет задавать дополнительные опции прямо внутри сценария. В том месте сценария, где необходимо, чтобы та или иная опция вступила в силу, вставьте такую конструкцию set -o option-name, или в более короткой форме -- set -option-abbrev. Эти две формы записи совершенно идентичны по своему действию.
#!/bin/bash
set -o verbose
# Вывод команд перед их исполнением.
#!/bin/bash
set -v
# Имеет тот же эффект, что и выше.
|
Для того, чтобы отключить действие той или иной опции, следует вставить конструкцию set +o option-name, или set +option-abbrev.
|
#!/bin/bash
set -o verbose
# Вывод команд перед их исполнением.
command
...
command
set +o verbose
# Запретить вывод команд перед их исполнением.
command
# команда не выводится.
set -v
# Вывод команд перед их исполнением.
command
...
command
set +v
# Запретить вывод команд перед их исполнением.
command
exit 0
Как вариант установки опций, можно предложить указывать их в заголовке сценария (в строке sha-bang) -- #!.
#!/bin/bash -x
#
# Далее следует текст сценария.
Так же можно указывать дополнительные ключи в командной строке, при запуске сценария. Некоторые из опций работают только если они заданы из командной строки, например -i -- ключ интерактивного режима работы скрипта.
bash -v script-name
bash -o verbose script-name
Ниже приводится список некоторых полезных опций, которые могут быть указаны как в полной форме (полная форма ключа начинается с двойного дефиса) так и в сокращенной (краткая форма ключа начинается с одинарного дефиса).
Таблица 30-1. Ключи Bash
Краткое имя |
Полное имя |
Описание |
-C |
noclobber |
Предотвращает перезапись файла в операциях перенаправления вывода (не распространяется на конвейеры (каналы) -- >|) |
-D |
(нет) |
Выводит список строк в двойных кавычках, которым предшествует символ $, сам сценарий не исполняется |
-a |
allexport |
Экспорт всех, определенных в сценарии, переменных |
-b |
notify |
Выводит уведомление по завершении фоновой задачи (job) (довольно редко используется в сценариях) |
-c ... |
(нет) |
Читает команды из ... |
-e |
errexit |
Прерывает исполнения сценария при появлении первой же ошибки, т.е. когда встретится команда, которая вернет ненулевой код возврата (за исключением циклов until или while, оператора if, цепочек из команд) |
-f |
noglob |
Подстановка имен файлов (globbing) запрещена |
-i |
interactive |
Сценарий запускается в интерактивном режиме |
-n |
noexec |
Команды в сценарии считываются, но не исполняются (проверка синтаксиса) |
-o Option-Name |
(нет) |
Установка опции Option-Name option |
-o posix |
POSIX |
Изменяет поведение Bash или сценария таким образом, чтобы оно соответствовало стандарту POSIX. |
-p |
privileged |
Сценарий запускается как "suid" (осторожно!) |
-r |
restricted |
Сценарий запускается в ограниченном режиме (см. Глава 20). |
-s |
stdin |
Читает команды с устройства стандартного ввода stdin |
-t |
(нет) |
Завершает работу после выполнения первой команды |
-u |
nounset |
При попытке обращения к неопределенным переменным, выдает сообщение об ошибке и прерывает работу сценария |
-v |
verbose |
Выводит на stdout каждую команду прежде, чем она будет исполнена |
-x |
xtrace |
Подобна -v, но выполняет подстановку команд |
- |
(нет) |
Конец списка ключей (опций), последующие аргументы будут восприниматься как позиционные параметры. |
-- |
(нет) |
Эквивалент предыдущей опции (-). |
Назад | Вперед
Содержание (общее) | Содержание раздела
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|
|
|