2011-11-03 84 views

回答

24

使用$#特殊变量。它的值是参数的数量。所以,如果你有一个脚本,只包含:

echo $# 

并执行这样的:

thatscript foo bar baz quux 

它会打印4.

在你的情况,你可能要像做:

if [ $# -ne 2 ]; then 
    # TODO: print usage 
    exit 1 
fi 
15

按照从参数应该包含“至少2件事”的问题的要求出发,我认为它可能是更准确的检查:

if (($# < 2)); then 
    # TODO: print usage 
    exit 1 
fi 

使用arithmetic expansion(())将防止这种打击exit 1不等于2

任何值如果您使用if [ $# -ne 2 ];会触发条件为任意数量的非2的参数。

相关问题