在我的脚本中,我尝试对第一个也是唯一的参数是否等于-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
我的那部分正确,我希望它显示当前脚本的名称。
—
user3380240 2014年
欢迎来到stackoverflow,尤其是bash标签!请查看标签Wiki中有用的工具和资源,例如shellcheck,它会指出(尽管并不总是能解释)许多类似问题。
—
另一个人
@ user3380240,
—
Charles Duffy 2014年
$-
是不是当前脚本的名称。$0
是。
对不起,那是一个错字。
—
user3380240 2014年
echo "usage: $0 [-v]"
;$-
显示活动的shell选项标志,而不是当前脚本的名称。