2

我有以下脚本。

#!/bin/bash
d5=me
d6=you
d7=re

for i in {5..7}
do
    echo $"d$i"
 done

这打印出
d5
d6
d7

我正在寻找打印 我


4

2 回答 2

5

您可以使用"${!varName}"引用存储在varName变量中的值:

for i in {5..7}; do v="d$i"; echo "${!v}"; done
me
you
re

检查bash中的间接变量扩展

或者更简单:

for v in d{5..7}; do echo "${!v}"; done
me
you
re
于 2015-10-15T18:47:36.267 回答
0

您还可以使用eval

for i in {5..7}; do eval echo \$d$i ; done
于 2015-10-16T01:48:33.733 回答