Linux 检查bash脚本中是否至少有两个参数

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

我正在尝试编写一个脚本,在有源和目标输入的情况下模拟cp。如何计算命令行中给定的参数数

比如说

./myscript src dest

检查是否至少给出了2项内容。

使用
$#
特殊变量。它的值是参数的数量。因此,如果您的脚本仅包含:

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