bash会对未设置的变量做什么

时间:2015-01-12 07:52:29

标签: bash shell

我对bash如何处理shell命令中使用的未设置变量的行为感到困惑,如下所示:

rm -rf /$TO_BE_REMOVED

如果我没有定义变量TO_BE_REMOVED,将会怎样做。

1 个答案:

答案 0 :(得分:4)

如果你这样做,执行的命令将有效地尝试删除非常非常糟糕的/。我的意思是,它可能会失败(除非你以root身份运行),但仍然会非常糟糕。

您可以使用一个简单的命令自动避免Bash中的许多这类错误:

set -eu

如果你把它放在Bash脚本的顶部,如果你的脚本调用一个返回未检查的错误的命令(-e,解释器将停止并返回错误代码。 } part),或者它是否使用未定义的变量(-u部分)。这使得Bash更加安全。