答案 0 :(得分:88)
使用等于所提供参数数量的$#
,例如:
if [ "$#" -ne 1 ]
then
echo "Usage: ..."
exit 1
fi
注意事项:请注意,在函数内部,这将等于提供给函数而不是脚本的参数数量。
编辑:正如SiegeX在bash中指出的那样,你也可以在(( ... ))
中使用算术表达式。这可以这样使用:
if (( $# != 1 ))
then
echo "Usage: ..."
exit 1
fi
答案 1 :(得分:18)
接受的解决方案通过测试给定的参数计数来检查参数是否已设置。如果这不是所需的检查,也就是说,如果您要检查是否已设置特定参数,则以下操作将执行此操作:
for i in "$@" ; do
if [[ $i == "check parameter" ]] ; then
echo "Is set!"
break
fi
done
或者,更紧凑:
for i in "$@" ; do [[ $i == "check argument" ]] && echo "Is set!" && break ; done
答案 2 :(得分:12)
if (( "$#" != 1 ))
then
echo "Usage Info:…"
exit 1
fi