xiaoshichao143 发表于 2012-07-04 15:30

echo `echo \\\\\\\z`的结果

本帖最后由 xiaoshichao143 于 2012-07-05 09:02 编辑

echo `echo \z` # z

echo `echo \\z` # z

echo `echo \\\z` # \z

echo `echo \\\\z` # \z

echo `echo \\\\\\z` # \z

echo `echo \\\\\\\z` # \\z   echo \\\\\\\z的结果为\\\z,echo \\\z的结果为\z..为什么echo `echo \\\\\\\z`的结果是\\z而不是\z

echo "\z"               #\z

echo "\\z"               #\z

echo `echo "\z"`      # \z

echo `echo "\\z"`   # \z

xiaoshichao143 发表于 2012-07-05 11:43


    找到答案啦:

    http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=3668196

Huawei1900 发表于 2012-07-09 21:46

在Bash当中是这么解析的,如果backslash后面的一个字符是dollar, backtick, double quote, backslash or newline,这个前导的backslash将被Bash移除(从输入流当中就处理了),而dollar,backtick,double quote,backslash or newline将保留它们本身的含义。

原来如此,学习了:victory:

cai120120-pb 发表于 2012-07-10 13:35


原来如此,学习了:lol




http://www.model61.net/Mzone/3261217/ComPost.asp?t=Vote
http://www.model61.net/Mzone/3261217/ComPost.asp?t=Flowers

_Rayx 发表于 2012-09-03 08:08

shell还是相当复杂的。虽然没啥语法,但抗不住规则多。
页: [1]
查看完整版本: echo `echo \\\\\\\z`的结果