在bash中,如何使用一个变量作为另一个变量的名称的一部分? [英] In bash, how to use a variable as part of the name of another variable?

查看:170
本文介绍了在bash中,如何使用一个变量作为另一个变量的名称的一部分?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

只是一个简单的问题。

我有一些数组:

array_0=(1 2 3) 
array_1=(1 2 3) 
.......

我有一个变量:

 a=0
 echo ${array_"$a"[0]}

得到了一个不好的替代误差。有谁知道正确的语法?

Got a bad substitution error. Does anyone know the right syntax?

推荐答案

您可以使用评估

#!/bin/bash
array_0=(1 2 3)
array_1=(4 5 6)
array_2=(7 8 9)
for a in {0..2} ; do
  for i in {0..2} ; do
    eval 'echo ${'"array_$a[$i]"'}'
  done
done

沃恩卡托的语法稍微详细,但回声语句本身更辨认。你和这两条线替换双环的内侧部分:

Vaughn Cato's syntax is slightly more verbose, but the echo statement itself is more decipherable. You replace the inner part of the double for loop with these two lines:

    array_a=array_$a[$i]
    echo ${!array_a}

这篇关于在bash中,如何使用一个变量作为另一个变量的名称的一部分?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆