分页: 1 / 1

请教变量的间接引用

发表于 : 2009-01-13 0:22
Dic4000
在终端下执行:

代码: 全选

a=b;b=5;eval echo a=$a,b=\$$a;
echo \$$b
结果是:a=b,b=5
$b

但如果接着在终端下执行

代码: 全选

 echo  b=`echo \$$a`
会得到一个奇怪的结果,请问间接引用和(~号的那个键)的用法哪里有误,为什么?

Re: 请教变量的间接引用

发表于 : 2009-01-13 8:28
cnkilior
eval echo \$$b

试试

Re: 请教变量的间接引用

发表于 : 2009-01-13 11:42
c\nc
a=aa
aa=AA
echo ${!a} # AA

Re: 请教变量的间接引用

发表于 : 2009-01-13 14:14
bones7456
echo b=`echo \\$$a`

Re: 请教变量的间接引用

发表于 : 2009-01-13 23:25
Dic4000
bones7456 写了:echo b=`echo \\$$a`
输出的是b=$b
cnkilior 写了:eval echo \$$b
其实我想知道有没有可能用echo `.....`形式来达到eval echo \$$b这样的效果?
我觉的命令 eval ...、` ... ` 和$(...)作用似乎是一样的,都是把后面的字符串当做一个命令先来执行。有没有高手帮忙讲讲eval和`...` 的区别? :em20

Re: 请教变量的间接引用

发表于 : 2009-01-14 0:06
c\nc
如果是bash,用 ${!a} 多好。

Re: 请教变量的间接引用

发表于 : 2009-01-15 6:22
aerofox
c\nc 写了:如果是bash,用 ${!a} 多好。
确实很好很强大