这可能看起来像一个愚蠢的问题,但我看起来很高和很低的解决方案,并没有拿出一个。我有一个接受一些参数的脚本,我只想知道如何有一个参数并访问下一个立即参数。我试过像$i+1
这样的东西但没有用。下一个参数将最终保存目标目录,因此我需要能够访问内容。还要注意我通过在循环中迭代的计数器变量得到参数位置,这就是为什么我不能简单地说$2
或其他东西。我为这样一个平凡的问题道歉。
答案 0 :(得分:4)
$ bash -c 'foo=1 ; echo ${@:$((foo+2)):1}' a b c d e f g
d
答案 1 :(得分:2)
如果i是包含整数的变量,并且您想要(i + 1)st参数,则可以执行以下操作:
eval arg=\$$(( i + 1 ))
现在arg包含你想要的参数
答案 2 :(得分:0)
它可能不适用于您的情况,但如果您按顺序访问参数,则可以使用内置的shift
命令来转换参数。
在没有参数的情况下执行shift
会将$1
设置为$2
,将$2
设置为$3
,依此类推,放弃$1
的旧值}。给shift
提供一个数字参数会改变这么多步骤。