Как предупредить об использовании неустановленных переменных в скрипте KornShell.

StackOverflow https://stackoverflow.com/questions/325424

Вопрос

Есть ли способ выдавать ошибки или предупреждения в сценарии 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, подобные этой - все, что вы знаете, это то, что ничего не произошло.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top