2016-11-24 40 views
0

我想检查是否设置了多个命令行参数。例如。Bash非空/非零检查多个字符串变量

if [-n "$1"] && [-n "$2"] && [-n "$3"]; then 
    do something 
else 
    do something else 
fi 

但我不断收到

庆典:[-n:命令未找到

什么是做到这一点的正确方法是什么?

回答

2

您需要在大括号之间的空间,即

if [ -n "$1" ] && [ -n "$2" ] && [ -n "$3" ]; then 

您还可以使用extended test command ([[...]])作为

if [[ -n "$1" && -n "$2" && -n "$3" ]]; then 
+0

哇,我也不会看上一个感谢!将接受,当它让我 – PDStat

+0

@PaulStatham:你总是可以使用http://www.shellcheck.net/调试将来的语法问题。 – Inian