【问题标题】:Can I use math on argument variables in a for loop?我可以在 for 循环中对参数变量使用数学吗?
【发布时间】:2019-05-11 00:01:48
【问题描述】:

我正在编写我的第一个 bash 脚本并且我正在尝试解析参数。我有一个

for arg in "$@"

循环设置,但我希望一起读取一些参数,例如,如果用户传递 -a 信息,它会找出 $number -a 是什么并读取 $number + 1。这是我能做的吗?

我可以让循环在每次迭代时保持 $count ++ 以告诉我正在使用什么 arg,并且由于我的脚本设置为在发现无效内容时将其炸毁,因此我设置了一个 if 语句以在 $skip 时继续var大于0,我只需要弄清楚如何读取$arg +1。

我没有尝试太多。我还是新手(我的第一个脚本),我不知道太多命令。谷歌让我走到了这一步,但我碰壁了。

【问题讨论】:

标签: bash arguments


【解决方案1】:

除了for arg in "$@" 语法,你可以写成:

for (( i = 1 ; i <= ${#} ; ++i )) ; do
  arg="${@:i:1}"           # current argument
  next_arg="${@:i+1:1}"    # next argument
  ...
done

for (( <em>expr1</em> ; <em>expr2</em> ; <em>expr3</em> )) 语法在the Bash Reference Manual, § 3.2.4.1 Looping Constructs 中描述; ${@:<em>expr</em>:<em>expr</em>} 语法在 § 3.5.3 Shell Parameter Expansion 中描述。两者都依赖于 shell 算法,在 § 6.5 Shell Arithmetic 中有描述。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 2021-11-08
    • 2017-04-14
    • 2013-06-18
    相关资源
    最近更新 更多