如何检查参数提供给bash脚本
我只想检查一个参数是否在我的bash脚本中提供。
我发现这一点 ,但所有的解决scheme似乎是不必要的复杂。
对于初学者来说这个简单的问题有什么意义?
使用$#
,它等于提供的参数数量,例如:
if [ "$#" -ne 1 ] then echo "Usage: ..." exit 1 fi
谨慎的话:请注意,在一个函数内,这将等于提供给函数而不是脚本的参数的个数。
编辑:正如SiegeX在bash中指出的,你也可以在(( ... ))
使用算术expression式。 这可以像这样使用:
if (( $# != 1 )) then echo "Usage: ..." exit 1 fi
接受的解决scheme检查是否通过testing设置的参数与给定参数的数量相符。 如果这不是所需的检查,也就是说,如果您想检查是否设置了特定参数 ,则可以执行以下操作:
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
if (( "$#" != 1 )) then echo "Usage Info:…" exit 1 fi