我有一个类似下面的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
答案 0 :(得分:2)
你需要间接:
echo ${!tablename}
再次阅读shell parameter expansion上的文档(提醒自己:你也这样做。)
您使用$($tablename)
的尝试失败,因为$(...)
表示法是command substitution,$tablename
中的值被解释为命令名称和名称为{{{1}的命令无法找到1}}。