Bash脚本错误[:!=:一元运算符预期

在我的脚本中,我试图错误检查第一个和唯一的参数是否等于-v,但它是一个可选的参数。 我使用一个if语句,但我一直得到一元运算符预期的错误。

这是代码:

if [ $1 != -v ]; then echo "usage: $0 [-v]" exit fi 

编辑:

我应该更具体:上面脚本的这一部分是检查一个可选的参数,然后,如果没有input参数,它应该运行程序的其余部分。

 #!/bin/bash if [ "$#" -gt "1" ]; then echo "usage: $0 [-v]" exit fi if [ "$1" != -v ]; then echo "usage: $0 [-v]" exit fi if [ "$1" = -v ]; then echo "`ps -ef | grep -v '\['`" else echo "`ps -ef | grep '\[' | grep root`" fi 

行情!

 if [ "$1" != -v ]; then 

否则,当$1完全为空时,您的testing变为:

 [ != -v ] 

代替

 [ "" != -v ] 

…和!=不是一个一元运算符(即只能有一个参数的运算符)。