【发布时间】:2020-05-25 23:13:56
【问题描述】:
#! /bin/bash
array_1=(1 3 5)
array_2=(7 9 3)
array_3=(0 -1 3)
for i in {1..3}; do
array=array_$i
echo "${array[@]}"
done
我打印的是“array_1”、“array_2”和“array_3”而不是它的值。
【问题讨论】:
#! /bin/bash
array_1=(1 3 5)
array_2=(7 9 3)
array_3=(0 -1 3)
for i in {1..3}; do
array=array_$i
echo "${array[@]}"
done
我打印的是“array_1”、“array_2”和“array_3”而不是它的值。
【问题讨论】:
将完整的变量名加上[@] 存储为字符串,然后获取带有${!var} indirect expansion 的元素。这很时髦,但是将[@] 放在字符串中而不是在扩展中是要走的路。
#!/bin/bash
array_1=(1 3 5)
array_2=(7 9 3)
array_3=(0 -1 3)
for i in {1..3}; do
array="array_$i[@]"
echo "${!array}"
done
【讨论】: