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