给定一个变量名,是否有一个函数可以打印它的值?
很多时候,我将变量的名称传递给 bash 函数,而不是在传递变量时进行扩展,而是希望在函数内扩展它。当然,当我这样做时,我最终必须创建带有变量名的字符串,然后运行 exec。如果我可以运行一个回显输出的命令,那就更简洁了!
答案1
show_val() { echo "${!1}"; }
foo=bar
echo $(show_val foo) # => bar
# works with arrays too
a=(zero one two)
echo $(show_val a[1]) # => one
bash 手册中有记录这里
答案2
不确定您关于“运行 exec”的问题是什么意思。也许你的意思是评估。
show_val() { eval echo \$$1; } 富=酒吧 显示_val foo