Как предупредить об использовании неустановленных переменных в скрипте KornShell. - PullRequest
2 голосов
/ 28 ноября 2008

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

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

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

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

Ответы [ 2 ]

6 голосов
/ 28 ноября 2008

Команда

set -u

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

Пример:

$ echo $foo

$ set -u
$ echo $foo
sh: foo: parameter not set
0 голосов
/ 28 ноября 2008

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

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

...