Chinaunix

标题: sigh,竟理解不了echo了。。。。 [打印本页]

作者: woshiwho    时间: 2005-06-14 16:35
标题: sigh,竟理解不了echo了。。。。
1.

#echo "\z"
#\z

2.

#echo "\$PATH"
#$PATH

总理解了2就理解不了1了。认为结果应该是z才讲的通。
是不是这样理解:
\后面没有紧跟meta就会原样输出? 应该是作为echo的argument才这样吧?(双引号把\z作为了echo的argument)就是说shell把\z传给echo,且保留\的meta属性,\先判断\后面是不是元字符,如果是就escape掉,显然z不是元字符那么就保持\的原样输出?不知道这么理解有什么错误?

概念上哪点有疏漏错误,请多多指教。
作者: aerofox    时间: 2005-06-14 16:47
标题: sigh,竟理解不了echo了。。。。
理解已经接近正确了。但不是echo在判断,是shell在判断。
作者: woshiwho    时间: 2005-06-14 16:54
标题: sigh,竟理解不了echo了。。。。
^_^,自己一定是晕了。原文写错了。已做修正。

再看看这样是否正确?
作者: 網中人    时间: 2005-06-14 16:54
标题: sigh,竟理解不了echo了。。。。
echo \z
echo "\z"
echo "\\z"

\ 在 soft quote 中, 後面不是 meta , 那 shell 不會去處理這條 \ ,
剩下來, 就是看 echo 如何處理了.
不過, 這要查 echo 的代碼才知道.
作者: lych    时间: 2005-06-14 16:57
标题: sigh,竟理解不了echo了。。。。
受教了!
作者: woshiwho    时间: 2005-06-14 17:28
标题: sigh,竟理解不了echo了。。。。
原帖由 "網中人" 发表:
echo \z
echo "\z"
echo "\\z"

\ 在 soft quote 中, 後面不是 meta , 那 shell 不會去處理這條 \ ,
剩下來, 就是看 echo 如何處理了.
不過, 這要查 echo 的代碼才知道.


如果没有soft quote ,也就是说echo \z 的情况,shell 是会处理这个\,还是会交给echo,看echo如何处理?
作者: 網中人    时间: 2005-06-14 22:27
标题: sigh,竟理解不了echo了。。。。
\z 沒在 soft quote 的話, shell 就先行處理了.
作者: creat7151    时间: 2005-06-15 13:59
标题: sigh,竟理解不了echo了。。。。
受益非浅




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2