В оболочке предусмотрены два механизма, облегчающие отладку командных процедур. Первый из них приводится в действие в результате выполнения в самой процедуре команды set –v имя_процедуры и вызывает распечатку строк процедуры по мере их считывания. Это облегчает поиск синтаксических ошибок. Отключается это средство командой set +v.
Команда set –x включит трассировку выполнения. Команды будут печататься по мере их выполнения после подстановки в них значений переменных.
При помощи флага –u можно выявить случаи использования неинициализированных переменных оболочки. Если такой флаг установлен, любая попытка подстановки переменной, которой не было присвоено значение, приведет к выдаче сообщения об ошибке и прекращению выполнения процедуры.
Все флаги можно отменить командой set –.
Флаги оболочки, установленные на данный момент, можно посмотреть, используя команду:
$–
Имеется еще одно средство, позволяющее отладку: размещение в процедуре команды echo для выдачи промежуточных трассировочных сообщений.
set [–ekntuvx] – Эти флаги могут задаваться также при вызове оболочки. Текущие установки флагов можно найти в переменной $–. Если не задано ни одного параметра, то будут распечатаны значения всех переменных. Значения опций будут следующие.
| –e
| В неинтерактивном режиме работы прекратить выполнение командного файла при неудачном завершении любой команды
|
| –k
| Поместить в среду вызываемой команды все ключевые параметры, заданные в списке параметров вызова, а не только те, которые предшествуют имени команды
|
| –n
| Считывать команды, но не выполнять их
|
| –t
| Прекратить работу после чтения и выполнения одной команды
|
| –u
| Считать ошибкой подстановку не установленных переменных
|
| –v
| Печатать строки командного файла по мере их считывания
|
| –x
| Печать команды и их параметры по мере их выполнения
|
| –
| Отмена опции –х и –v
|