我正在尝试编写一个脚本,它模仿cp,其中有源输入和目标输入。如何计算命令行中给出的参数数量
例如
./myscript src目标
检查是否至少给出了2件东西。
发布于 2011-11-03 10:00:45
使用$#特殊变量。它的值是参数的数量。因此,如果您的脚本仅包含以下内容:
echo $#并像这样执行它:
thatscript foo bar baz quux它将打印4。
在您的情况下,您可能希望执行以下操作:
if [ $# -lt 2 ]; then
# TODO: print usage
exit 1
fi发布于 2014-11-08 04:45:10
按照问题中的要求,参数应该包含“至少两件事”,我认为检查可能更准确:
if (( $# < 2 )); then
# TODO: print usage
exit 1
fi使用arithmetic expansion (( ))将防止任何值不等于2时命中exit 1。
如果您使用if [ $# -ne 2 ];,它将为除2以外的任意数量的参数触发条件。
编辑:看起来被接受的答案已经被更新,包括一个等效的答案(更便携?)这是一个例子。
https://stackoverflow.com/questions/7989486
复制相似问题