如何警告在KornShell脚本中使用未设置的变量。

时间:2008-11-28 10:11:31

标签: linux unix shell scripting ksh

有没有办法在KornShell(ksh)脚本中抛出错误或警告以防止使用未设置的变量? 我们假设我有一个我要删除的临时文件夹。

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

如何在实际发生之前预防这类错误?

我知道脚本应该在尝试删除之前检查文件是否存在和空字符串,这只是一个愚蠢的例子来说明一些警告可以避免的错误。我不知道ksh中是否存在此功能。如果它确实存在,你如何打开它?

2 个答案:

答案 0 :(得分:6)

命令

set -u

当尝试扩展未设置的变量时,会导致POSIX sh (1)及其衍生物发挥作用。

示例:

$ echo $foo

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

答案 1 :(得分:0)

您可以检查变量是否包含内容,即不是'',并打印出“变量为空”等消息。

然而,这仍然不会像这样修复PEBCAK错误 - 所有你知道的是没有发生任何事情。