1

这似乎是一个愚蠢的问题,但我一直在寻找解决方案,但没有想出一个解决方案。我有一个接受多个参数的脚本,我只是想知道如何拥有一个参数并访问下一个直接参数。我尝试过类似$i+1无济于事的东西。下一个参数最终将保存一个目标目录,因此我需要能够访问内容。另请注意,我通过循环中迭代的计数器变量获取参数位置,这就是为什么我不能简单地说$2什么。我为这样一个平凡的问题道歉。

4

3 回答 3

4
$ bash -c 'foo=1 ; echo ${@:$((foo+2)):1}' a b c d e f g
d
于 2012-04-15T00:11:56.633 回答
2

如果 i 是一个包含整数的变量,并且您想要 (i+1)st 参数,您可以执行以下操作:

eval arg=\$$(( i + 1 ))

现在 arg 包含你想要的参数

于 2012-04-15T00:10:48.090 回答
0

它可能不适用于您的情况,但如果您按顺序访问参数,则可以使用内置shift命令来切换参数。

不带参数执行shift将设置$1$2$2to$3等,丢弃 的旧值$1。给出一个数值参数shift将改变那么多步骤。

于 2012-04-15T00:31:18.910 回答