我想在 bash shell 脚本中循环遍历数组时访问数组索引变量。
我的脚本#!/bin/bash
AR=('foo' 'bar' 'baz' 'bat')
for i in ${AR[*]}; do
echo $i
done
上述脚本的运行结果为:
foo
bar
baz
bat
我追求的结果是:
0
1
2
3
我该如何修改我的脚本来实现这一点?
答案1
添加一个字符:
/bin/bash #!/bin/bash AR=(‘foo’‘bar’‘baz’‘bat’) 对于我在${!AR[*]}; 做 ← 回显“$i” 完毕
!
(在数组扩展中 添加感叹号 ( ):。 )来自手册页:${!AR[*]}
参数扩展
︙
${!姓名[@]}
${!姓名[*]}数组键的列表。 如果姓名是一个数组变量,扩展为在中分配的数组索引(键)列表姓名。 如果姓名不是数组,则扩展为 0,如果姓名设置为,否则为空。当
@
使用并且扩展出现在双引号内时,每个键都会扩展为一个单独的单词。