我想将选项传递给我的 bash 脚本。如果设置了“GUI”选项,则应使用 zenity 进行输入和输出,而不是使用控制台。目前,我将该选项作为环境变量传递,如下所示:
GUI=1 ./my_bash_script.sh
然后我发现我可以像这样测试变量的长度:
if [ -n "$GUI" ]; then
但是后来,我很随机地发现,仅测试没有选项的字符串似乎也可以按预期工作:
if [ "$GUI" ]; then
我已经阅读了 test
的手册条目,但是我看不到任何关于如果您只传递一个不带任何参数的字符串会发生什么的解释。我猜如果它收到一个空字符串,它返回 true,否则返回 false?是这样吗?
最佳答案
你是对的。来自 test(1)
man page :
-n STRING the length of STRING is nonzero STRING equivalent to -n STRING
关于没有选项的 Bash 测试似乎有效,但为什么呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17869163/