2015-10-15 135 views
2

我有以下脚本。打印多个bash变量

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

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

此打印出
D5
D6
D7

我期待打印


重新

+0

你为什么不使用数组?每当你发现自己用这样的连续名字构造变量时,它可能应该是一个数组。 – Barmar

回答

0

您还可以使用eval

for i in {5..7}; do eval echo \$d$i ; done 
+1

是的,你可以使用'eval',但考虑到有一个专门的间接变量扩展机制(见anubhava的答案),为什么_would_你,因为eval的安全风险? – mklement0