在我的脚本中,我试图错误检查第一个和唯一的参数是否等于-v,但它是一个可选参数。我使用一个if语句,但我不断得到一元运算符期望的错误。
这是代码:
if [ $1 != -v ]; then echo "usage: $0 [-v]" exit fi
编辑:
我应该更具体:
上面脚本的这部分是检查一个可选的参数,然后,如果没有输入参数,它应该运行程序的其余部分。
#!/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完全为空时,您的测试变为:
[ != -v ]
代替
[ "" != -v ]
…和!=不是一元运算符(即,只能取一个参数)。