【问题标题】:bash argument parsing in function函数中的bash参数解析
【发布时间】:2014-09-06 17:35:05
【问题描述】:

是在函数中解析 bash 脚本参数的一种解决方法

运行命令: ./script.sh -t -r -e

脚本:

#!/bin/sh
# parse argument function
parse_args() {
echo "$#"   #<-- output: 0
}


# main
echo "$#"   #<-- output: 3

# parsing arguments
parse_args

【问题讨论】:

  • 我现在是“输出 0”的原因,但是有没有办法在额外的函数中解析参数?
  • parse_args 之后添加$@
  • 谢谢赛勒斯。解决方案:parse_args $@

标签: bash function arguments


【解决方案1】:

$# 计算为当前范围内的参数数量。由于每个函数都有自己的作用域,并且您不向parse_args 传递任何参数,因此$# 在其中始终为0。

要获得所需的结果,请将最后一行更改为:

parse_args "$@"

The special variable "$@" 扩展为当前(顶级)范围的位置参数作为单独的单词。随后它们被传递给parse_args的调用。

【讨论】:

  • 很好的答案。你在我的回答中添加了很好的例子!
猜你喜欢
  • 2013-05-11
  • 2012-12-18
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
  • 2011-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多