如何实现两级声明的变量值

时间:2015-03-19 18:23:09

标签: shell

我有一个类似下面的Unix变量:

emp_tbl=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28

现在我创建了另一个变量,如下所示:

tablename=emp_tbl

现在我希望使用$($tablename)看到值1,2,3,...但我收到错误:

~$>emp_tbl=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28
~$>tablename=emp_tbl
~$>echo $($tablename)
-bash: emp_tbl: command not found

1 个答案:

答案 0 :(得分:2)

你需要间接:

echo ${!tablename}

再次阅读shell parameter expansion上的文档(提醒自己:你也这样做。)

您使用$($tablename)的尝试失败,因为$(...)表示法是command substitution$tablename中的值被解释为命令名称和名称为{{{1}的命令无法找到1}}。