如何在bash中按名称打印变量的值
当我知道变量的名称时,我想知道如何打印变量值。 我需要一点帮助来把所有的部件组装起来 假设我有a=a和b=b。此外,我还有文件中a和b的列表。我想打印如何在bash中按名称打印变量的值,bash,Bash,当我知道变量的名称时,我想知道如何打印变量值。 我需要一点帮助来把所有的部件组装起来 假设我有a=a和b=b。此外,我还有文件中a和b的列表。我想打印 a=A b=B 我正在用eval进行测试,但我无法在for循环中进行测试。我猜是因为我无法捕获eval的结果 我可以像这样拼起来,但闻起来 设置 执行 for n in `cat f.txt` do echo -n $n eval echo \$$n done 想要的结果是 a=A b=B 但是如果我以后需要使用这些值,它将
a=A
b=B
我正在用eval
进行测试,但我无法在for循环中进行测试。我猜是因为我无法捕获eval
的结果
我可以像这样拼起来,但闻起来
设置
执行
for n in `cat f.txt`
do
echo -n $n
eval echo \$$n
done
想要的结果是
a=A
b=B
但是如果我以后需要使用这些值,它将不起作用
我不能做的是
val=`eval echo \$$n`
要在以后能够执行echo$val。您可以执行以下操作:
$ a=A
$ echo $a
A
$ echo a=$a
a=A
这个怎么样
$ for n in `cat f.txt `; do
> val=$(eval "echo \$$n")
> echo $n=$val
> done
a=A
b=B
当然,您不需要使用任何附加变量(val
),它可能看起来像:
$ for n in $(cat f.txt); do echo $n=$(eval "echo \$$n"); done
a=A
b=B
你真的很想阅读并感谢这些链接,但我只想保持简单…正确操作并不复杂。它符合我的需要,只是不足以解决所有可以想象的问题,但我只想关注一个问题…不,你直接使用
a
,但是我的名字在另一个变量中-n
在上面的例子中…谢谢,就是这样,当我尝试时,我没有在引号中-$(eval echo\$$n)
,也许这就是@tripleee想要告诉我的。。。
$ for n in $(cat f.txt); do echo $n=$(eval "echo \$$n"); done
a=A
b=B