为什么无法在函数中获取shell脚本的参数计数

时间:2015-03-13 17:05:01

标签: linux bash shell

我很困惑为什么无法在函数中获取脚本的参数计数,有人可以帮助我吗?提前致谢:)
test.sh

#!/bin/bash
check(){
    echo $#
    if [ $# -lt 2 ]; then
        echo "Argument missing"
        exit 1
    fi
}
echo $#
check

生成

./test.sh aa bb

输出

2
0

1 个答案:

答案 0 :(得分:7)

函数有自己的参数变量的本地副本,包括$#。它们与函数的参数相关,并且脚本级别的等价物被遮蔽。如果你想获得脚本的参数变量,那么你需要先将它们存储在其他地方,或者将它们传递给函数。

check "$@"