2011-06-09 103 views
19

我有一个索引的bash阵列和我想使用像表达式“$ {A [@]}”除我希望它不包括[0]。我能想到的最好的是这样的:获取一个bash数组的所有元素除第一

j=0 
for i in "${a[@]}" 
do 
    b[j]=${a[++j]} 
done 

,然后用 “$ {B [@]}”。有没有更好的办法?

回答

31
$ a=(1 2 3) 
$ echo "${a[@]:1}" 
2 3 
+0

认为他需要一个访问数组b。 b =($ {a [@]:1}) – Jasonw 2011-06-09 02:31:12

+0

是的,这是有效的!你会碰巧知道在描述的bash手册中的什么位置? – grok12 2011-06-09 03:41:35

+3

他们在**阵列**和**参数扩展**部分。他们可以一起使用没有明确提及,但它确实有效。 – 2011-06-09 04:28:42