LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: johnny_jiang

实在忍不住了,一直想不通的问题, backslash在$() 和 ``中的不同

[复制链接]
发表于 2006-3-15 13:47:01 | 显示全部楼层
debian:~# x=a
debian:~# b=`echo \$x`
debian:~# echo $b
a
我还以为你把` `看成' '
``和$()表示方法当然不同,但相同的地方可能更多,不争论了,哈哈,大家学习提高
回复 支持 反对

使用道具 举报

发表于 2006-3-15 13:52:02 | 显示全部楼层
红色的是顺序执行的
蓝色的是现在执行``中的内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-15 14:01:17 | 显示全部楼层
Post by davi
红色的是顺序执行的
蓝色的是现在执行``中的内容


关于这点,小弟明白

请教davi兄,
能否解释一下bash是如何解释
echo `echo \$x`
这条命令的
回复 支持 反对

使用道具 举报

发表于 2006-3-15 14:36:27 | 显示全部楼层
Post by johnny_jiang
关于这点,小弟明白

请教davi兄,
能否解释一下bash是如何解释
echo `echo \$x`
这条命令的

seamonkey在2楼和7楼已经讲明白了吧。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-15 15:01:09 | 显示全部楼层
Post by wplxb
seamonkey在2楼和7楼已经讲明白了吧。。。


为什么在命令替换后还要参数替换呢,
参数替换不是在命令替换之前吗

如果是这样的话,那么
echo $(echo \$x)是否也要等于a

也许我理解有问题,我希望各位高手能够通过命令行解释的原理分析一下
回复 支持 反对

使用道具 举报

发表于 2006-3-15 15:59:03 | 显示全部楼层
我的理解呵呵,不对请斧正
echo `echo \$x` -->  echo $x --> a

echo $(echo \$x) --> echo \$x --> $x
回复 支持 反对

使用道具 举报

发表于 2006-3-15 16:13:19 | 显示全部楼层
echo `echo \$x`= echo $x = a
echo $(echo \$) = echo \$x = x

你多了一对backticks
回复 支持 反对

使用道具 举报

发表于 2006-3-15 16:17:27 | 显示全部楼层
呵呵多谢,seamonkey 兄
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-15 16:25:13 | 显示全部楼层
Post by seamonkey
echo `echo \$x`= echo $x = a
echo $(echo \$) = echo \$x = x

你多了一对backticks


我的想法:

echo $(echo \$x) -> echo $x (此时的$x是命令替换下来的,接下来不存在参数替换的步骤) -> $x

echo `echo \$x` 关于这个,我感觉两位的解释好象不太一致,呵呵
这样一搞, 更糊涂了
回复 支持 反对

使用道具 举报

发表于 2006-3-15 16:27:52 | 显示全部楼层
``中得到得结果作为前面echo的参数
这样理解呢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表