我想将选项传递给我的bash脚本。如果设置了“GUI”选项,则应使用zenity进行输入和输出,而不是控制台。目前我正在将选项作为环境变量传递:
GUI=1 ./my_bash_script.sh
然后我发现我可以像这样测试变量的长度:
if [ -n "$GUI" ]; then
但是,随后,我发现只是测试没有选项的字符串似乎也按预期工作:
if [ "$GUI" ]; then
我已经阅读了test
的手册条目,但如果您只传递一个没有任何参数的字符串,我看不到任何解释。我猜测如果它收到一个空字符串,它返回true,否则返回false?是这样的吗?
答案 0 :(得分:4)
你是对的。来自test(1)
man page:
-n STRING the length of STRING is nonzero STRING equivalent to -n STRING