我试图从Bash变量中读取名称后缀,但我想遍历前缀。
我举一个例子如下:

var1_name="variable1"
var1_size="2"
var2_name="variable2"
var2_size="3"
vars=(var1 var2)

for v in "${vars[@]}"
do
    echo $v_name
    echo $v_size
done

我希望输出如下:
variable1
2
variable2
3

这和巴什有关吗?
我试过使用eval和关联数组,但仍然找不到检查已定义变量的方法。

最佳答案

下面对我有用。您需要先构造变量,然后使用感叹号对其求值。

var1_name="variable1"
var1_size="2"
var2_name="variable2"
var2_size="3"
vars=("var1" "var2")

for v in "${vars[@]}"
do
    name=${v}_name
    size=${v}_size
    echo ${!name}
    echo ${!size}
done

开/关
variable1
2
variable2
3

09-25 18:16