当我知道变量的名称时,我想知道如何打印变量值。 我需要一些帮助才能将所有部分放在一起。
假设我有一个= A和b = B.另外,我在文件中列出了a和b。我想要打印
a=A
b=B
我正在使用eval
进行测试,但我无法在for循环中执行此操作。我猜是因为我无法捕获eval
...
我可以像这样放在一起,但它闻起来......
设置
$ cat f.txt
a
b
$ a=A
$ b=B
执行
for n in `cat f.txt`
do
echo -n $n
eval echo \$$n
done
想要的结果是
a=A
b=B
但如果我以后需要使用这些值,它将无效......
我无法做的是
val=`eval echo \$$n`
以后能够echo $val
。
答案 0 :(得分:0)
你可以这样做:
$ a=A
$ echo $a
A
$ echo a=$a
a=A
答案 1 :(得分:0)
这个怎么样?
$ 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