在我的脚本中,我试图错误检查第一个也是唯一的参数是否等于-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
Quotes!
if [ "$1" != -v ]; then
否则,当$1
完全是空的,你的测试就变成:
[ != -v ]
代替
[ "" != -v ]
...and !=
不是一元运算符(即只能接受单个参数的运算符)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)