有什么办法扔在KornShell(KSH)脚本,以防止使用未设置变量的错误或警告? 假设我有我想删除临时文件夹。

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

如何防止这种错误才真正发生?

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

有帮助吗?

解决方案

该命令

set -u

会造成POSIX的 SH 的(1),并在所扩大的未固化的变量的尝试其衍生物松鸡。

示例:

$ echo $foo

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

其他提示

您可以检查该变量对于具有内容,即,不是“”,和打印输出如“变量为空”的消息。

然而,这仍然不会解决这样PEBCAK错误 - 所有你想知道的是,什么都没有发生。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top