How to check that a parameter was supplied to a bash script
本问题已经有最佳答案,请猛点这里访问。
我只想检查在我的bash脚本中是否提供了一个参数。
我发现了这一点,但所有的解决方案似乎都不必要地复杂。
对于初学者来说,这个简单问题的简单解决方案是什么?
使用与提供的参数数量相等的
1 2 3 4 5 | if ["$#" -ne 1 ] then echo"Usage: ..." exit 1 fi |
注意:请注意,在函数内部,这将等于为函数而不是脚本提供的参数数。
编辑:正如bash中的siegex所指出的,您也可以在
1 2 3 4 5 | if (( $# != 1 )) then echo"Usage: ..." exit 1 fi |
接受的解决方案通过测试给定参数的计数来检查是否设置了参数。如果这不是所需的检查,也就是说,如果要检查是否设置了特定参数,则将执行以下操作:
1 2 3 4 5 6 | for i in"$@" ; do if [[ $i =="check parameter" ]] ; then echo"Is set!" break fi done |
或者更紧凑地说:
1 | for i in"$@" ; do [[ $i =="check argument" ]] && echo"Is set!" && break ; done |
1 2 3 4 5 | if (("$#" != 1 )) then echo"Usage Info:…" exit 1 fi |