Как предупредить об использовании неустановленных переменных в скрипте KornShell.
Вопрос
Есть ли способ выдавать ошибки или предупреждения в сценарии KornShell (ksh), чтобы предотвратить использование неустановленных переменных?Предположим, у меня есть временная папка, которую я хочу удалить.
TEMP_FILES_DIR='/app/myapp/tmp'
rm -Rf $TEMP_FILE_DIR #notice the misspelling
Как предотвратить подобные ошибки до того, как они действительно произойдут?
Я знаю, что сценарий должен проверять существование файла и пустую строку, прежде чем пытаться удалить его. Это просто глупый пример, иллюстрирующий ошибку, которой можно было бы избежать с помощью некоторых предупреждений.Я не знаю, существует ли эта функция в ksh.Если он существует, как его включить?
Решение
Команда
set -u
Вызовет POSIX ш(1) и его производные вызывают недовольство при попытке расширить неустановленную переменную.
Пример:
$ echo $foo $ set -u $ echo $foo sh: foo: parameter not set
Другие советы
Вы можете проверить наличие переменной в переменной, т. е. не указывать '', и распечатать сообщение, подобное " переменная пуста ".
Тем не менее, это не поможет исправить ошибки PEBCAK, подобные этой - все, что вы знаете, это то, что ничего не произошло.