2015-03-13 80 views
1

我很困惑为什么无法获得脚本的参数在函数中的计数,有人可以帮我吗?在此先感谢:)
test.sh为什么不能在函数中获取shell脚本的参数数

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

运行:

./test.sh aa bb 

输出

2 
0 
+1

你描述的通常被认为是一个特征;-)!只需转到“检查”$ {@}“'。祝你好运。 – shellter 2015-03-13 17:08:27

+0

我会尽力,谢谢。@ shellter – 2015-03-13 17:13:54

回答

7

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

check "[email protected]" 
+0

你的回答让我很清楚,谢谢:) – 2015-03-13 17:12:54

相关问题