我对Bash中括号,括号,花括号的用法以及它们的双重或单一形式之间的区别感到困惑.有明确的解释吗?
在我的脚本中,我试图错误检查第一个和唯一的参数是否等于-v但它是一个可选参数.我使用if语句,但我一直得到一元运算符预期的错误.
这是代码:
if [ $1 != -v ]; then
echo "usage: $0 [-v]"
exit
fi
Run Code Online (Sandbox Code Playgroud)
编辑:
我应该更具体一点:上面脚本的这一部分是检查一个可选参数然后,如果没有输入参数,它应该运行程序的其余部分.
#!/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
Run Code Online (Sandbox Code Playgroud)