Linux 检查bash脚本中是否至少有两个参数
我正在尝试编写一个脚本,在有源和目标输入的情况下模拟cp。如何计算命令行中给定的参数数 比如说 ./myscript src dest 检查是否至少给出了2项内容。使用Linux 检查bash脚本中是否至少有两个参数,linux,bash,Linux,Bash,我正在尝试编写一个脚本,在有源和目标输入的情况下模拟cp。如何计算命令行中给定的参数数 比如说 ./myscript src dest 检查是否至少给出了2项内容。使用$#特殊变量。它的值是参数的数量。因此,如果您的脚本仅包含: echo $# 然后像这样执行它: thatscript foo bar baz quux 它将打印4 在您的情况下,您可能需要执行以下操作: if [ $# -lt 2 ]; then # TODO: print usage exit 1 fi
$#
特殊变量。它的值是参数的数量。因此,如果您的脚本仅包含:
echo $#
然后像这样执行它:
thatscript foo bar baz quux
它将打印4
在您的情况下,您可能需要执行以下操作:
if [ $# -lt 2 ]; then
# TODO: print usage
exit 1
fi
根据问题中的要求,参数应包含“至少两件事”,我认为检查可能更准确:
if (( $# < 2 )); then
# TODO: print usage
exit 1
fi
if($#<2));然后
#TODO:打印使用
出口1
fi
使用((
)
将防止任何不等于2的值点击退出1
如果使用If[$#-ne 2]代码>它将为除2以外的任意数量的参数触发条件
编辑:看起来接受的答案已经更新,包含了一个类似的(更便携?)例子。如果你把它放在你的~/.bashrc
使用返回
而不是退出1