Chinaunix
标题:
``和$()执行eval,得到不同结果,为什么?
[打印本页]
作者:
firmlyjin
时间:
2010-03-19 11:20
标题:
``和$()执行eval,得到不同结果,为什么?
例:
b=1
a_1=99
现要求出a_$b既:a_1
执行$(eval echo \$a_$b):99
执行·eval echo \$a_$b·:1
$(),和··,都是执行的命令,为什么两者结果不同呢?望大侠告知,不甚感激
作者:
drowsyboy
时间:
2010-03-19 11:36
回复
1#
firmlyjin
`eval \\$a_$b` 是 99
同迷惑
作者:
drowsyboy
时间:
2010-03-19 11:39
回复
2#
drowsyboy
明白了, 应该是,在``中, \本身需要转义,如果没有转义,eval 先求 $a_ 而$a_ 是没有定义的,所有结果是1
>`eval echo \${a}_$b`
_1
作者:
firmlyjin
时间:
2010-03-19 13:37
回复 drowsyboy
明白了, 应该是,在``中, \本身需要转义,如果没有转义,eval 先求 $a_ 而$a_ 是没有 ...
drowsyboy 发表于 2010-03-19 11:39
谢谢!
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2