我正在寻找一种方法将字符串添加到bash中的变量名称中,并将其评估为新变量。例如:Bash中变量变量的变化
#!/bin/bash
file="filename"
declare ${file}_info="about a file"
declare ${file}_status="status of file"
declare ${file}_number="29083451"
echo ${${file}_info} # <-- This fails with error: "bad substitution"
有没有办法做到这一点?
我实际上并没有在任何地方的任何生产代码中实现这个。我只想知道是否有某种方法可以使用变量和字符串创建变量名称。这似乎是一个有趣的问题。
另请注意,我是而不是问关于bash间接寻址,这是使用${!x}
来评估变量的内容作为变量。
它看起来像在http://stackoverflow.com/questions/8435256/use-string-as给出的EVAL方法-variable-name-in-bash-script可能就是你正在寻找的那个。 – jpe 2014-10-06 21:54:55
间接常见问题解答告诉您如何编写,而不仅仅是如何阅读,所以它实际上是同一主题。 – 2014-10-06 22:09:17
同意。正如我已经审查过评论和答复,似乎必须在解决方案中涉及间接性。我希望有另一种方式,但是如果在这个过程中使用间接方法,似乎至少有一种解决方案。 – vastlysuperiorman 2014-10-06 22:10:45