从bash shell脚本循环访问数组索引变量

从bash shell脚本循环访问数组索引变量

我想在 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,如果姓名设置为,否则为空。当@使用并且扩展出现在双引号内时,每个键都会扩展为一个单独的单词。

相关内容