2012-09-30 43 views
1

假设我有一个脚本,需要两个参数,有没有办法来检查,如果有一个参数或2+争论说形式:参数入住庆典

if [ check if arguments don't equal 2 ]; then 
    echo Too many arguments 
    exit 1 
fi 
+0

您是否已经尝试过“man bash”?你从手册页中看不到什么? – atk

+2

如果他们被告知'参数过多',那么调用脚本时无参数的人会感到惊讶。如果你期望有两个参数,那么这个消息可能应该是'echo'的用法:使用:从$ 0到$>&2,标识命令(通过'$ 0')和正确的用法,并将信息发送到标准错误所以它不会在管道中丢失)。我的大多数脚本都使用'$(basename $ 0 .sh)'来标识正在运行的命令。 –

回答

5
if [ $# -ne 2 ]; then 
    # Number of arguments was not 2 
fi 

变量$#持有传递参数的数量。

+3

如果这是专门针对'bash'(而不是任何POSIX兼容的shell),更可读的替代方案是'if(($#!= 2)); then'。 – chepner