这似乎是一个愚蠢的问题,但我一直在寻找解决方案,但没有想出一个解决方案。我有一个接受多个参数的脚本,我只是想知道如何拥有一个参数并访问下一个直接参数。我尝试过类似$i+1
无济于事的东西。下一个参数最终将保存一个目标目录,因此我需要能够访问内容。另请注意,我通过循环中迭代的计数器变量获取参数位置,这就是为什么我不能简单地说$2
什么。我为这样一个平凡的问题道歉。
问问题
986 次
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
、$2
to$3
等,丢弃 的旧值$1
。给出一个数值参数shift
将改变那么多步骤。
于 2012-04-15T00:31:18.910 回答