【发布时间】:2011-09-11 08:37:25
【问题描述】:
我有一个索引 bash 数组,我想使用像“${a[@]}”这样的表达式,但我希望它不包含 a[0]。我能想到的最好的是:
j=0
for i in "${a[@]}"
do
b[j]=${a[++j]}
done
然后使用“${b[@]}”。有没有更好的办法?
【问题讨论】:
我有一个索引 bash 数组,我想使用像“${a[@]}”这样的表达式,但我希望它不包含 a[0]。我能想到的最好的是:
j=0
for i in "${a[@]}"
do
b[j]=${a[++j]}
done
然后使用“${b[@]}”。有没有更好的办法?
【问题讨论】:
如果是标准数组,使用:
"${a[@]:1}"
如果您正在使用参数:
"${@:2}"
注意不同的语法,$@ 是 1-indexed(因为 $0 是脚本的名称)。
【讨论】:
$ a=(1 2 3)
$ echo "${a[@]:1}"
2 3
【讨论】: