我很困惑为什么无法在函数中获取脚本的参数计数,有人可以帮助我吗?提前致谢:)
的 test.sh
#!/bin/bash
check(){
echo $#
if [ $# -lt 2 ]; then
echo "Argument missing"
exit 1
fi
}
echo $#
check
生成
./test.sh aa bb
输出:
2
0
答案 0 :(得分:7)
函数有自己的参数变量的本地副本,包括$#
。它们与函数的参数相关,并且脚本级别的等价物被遮蔽。如果你想获得脚本的参数变量,那么你需要先将它们存储在其他地方,或者将它们传递给函数。
check "$@"