2

我想将选项传递给我的 bash 脚本。如果设置了“GUI”选项,则应使用 zenity 进行输入和输出,而不是控制台。目前我将选项作为环境变量传递,如下所示:

GUI=1 ./my_bash_script.sh

然后我发现我可以像这样测试变量的长度:

if [ -n "$GUI" ]; then

但是随后,我很随机地发现,只测试没有选项的字符串似乎也可以按预期工作:

if [ "$GUI" ]; then

我已经阅读了手册条目,test但我看不到任何解释如果你只传递一个没有任何参数的字符串会发生什么。我猜如果它收到一个空字符串它返回true,否则它返回false?是这样吗?

4

1 回答 1

4

你是对的。从test(1)手册页

-n STRING
      the length of STRING is nonzero

STRING equivalent to -n STRING
于 2013-07-25T21:36:43.073 回答