是解析函数中bash脚本参数的解决方法
运行命令:
./script.sh -t -r -e
脚本:
#!/bin/sh
# parse argument function
parse_args() {
echo "$#" #<-- output: 0
}
# main
echo "$#" #<-- output: 3
# parsing arguments
parse_args
最佳答案
$#
计算当前范围内的参数数量。由于每个函数都有自己的作用域,并且您不将任何参数传递给parse_args
,因此$#
在其中始终为0。
要获得所需的结果,请将最后一行更改为:
parse_args "$@"
The special variable
"$@"
作为单独的单词扩展到当前(顶级)范围的位置参数。随后,它们被传递给parse_args
的调用。关于bash参数在函数中解析,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25702969/