我只想检查我的bash脚本中是否提供了一个参数.
我发现了这一点,但所有解决方案似乎都不必要地复杂化了.
对于这个对初学者有意义的简单问题,有什么简单的解决方案?
Ada*_*man 92
使用$#等于提供的参数数量,例如:
if [ "$#" -ne 1 ]
then
echo "Usage: ..."
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
注意事项:请注意,在函数内部,这将等于提供给函数而不是脚本的参数数量.
编辑:正如SiegeX在bash中指出的那样,你也可以使用算术表达式(( ... )).这可以这样使用:
if (( $# != 1 ))
then
echo "Usage: ..."
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
h7r*_*h7r 20
接受的解决方案通过测试给定的参数计数来检查参数是否设置.如果这不是所需的检查,也就是说,如果要检查是否设置了特定参数,则以下操作将执行此操作:
for i in "$@" ; do
if [[ $i == "check parameter" ]] ; then
echo "Is set!"
break
fi
done
Run Code Online (Sandbox Code Playgroud)
或者,更紧凑:
for i in "$@" ; do [[ $i == "check argument" ]] && echo "Is set!" && break ; done
Run Code Online (Sandbox Code Playgroud)
jay*_*ngh 12
if (( "$#" != 1 ))
then
echo "Usage Info:…"
exit 1
fi
Run Code Online (Sandbox Code Playgroud)