2008-11-28 5 views
2

Есть ли способ выбросить ошибки или предупреждения в скрипт KornShell (ksh), чтобы предотвратить использование неустановленных переменных? Предположим, у меня есть временная папка, которую я хочу удалить.Как предупреждать об использовании неустановленных переменных в скрипте KornShell.

TEMP_FILES_DIR='/app/myapp/tmp' 
rm -Rf $TEMP_FILE_DIR #notice the misspelling 

Как предотвратить такие ошибки, прежде чем они на самом деле произойдут?

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

ответ

6

Команда

set -u

Вызовет POSIX ш (1) и его производные, чтобы ворчать при попытке расширить отключенное переменную производится.

Пример:

 
$ echo $foo 

$ set -u 
$ echo $foo 
sh: foo: parameter not set 
0

Вы можете проверить переменную на наличие содержимого, то есть не быть '', и распечатать сообщение типа «переменная пуста».

Однако, это все еще не исправляет ошибки PEBCAK, подобные этому - все, что вы знаете, это то, что ничего не произошло.