[讨论] 为什么 read 需要 backslash escaping

[讨论] 为什么 read 需要 backslash escaping

read 的 help 中有这么一段话:
If the -r option is given, this signifies `raw' input, and backslash escaping is disabled.
为什么 read 要对 backslash escaping 做特殊处理呢?什么情况下会需要这个 feature?

-- 此问题受[thread=154958]这个帖子[/thread]启发      
got it ?
复制内容到剪贴板
代码:
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[369 0][/color] [color=red]; read v1 v2
[/color]a b c    [color=red]-- 此行为键盘输入[/color]
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[369 0][/color] [color=red]; echo $v1
[/color]a
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[369 0][/color] [color=red]; echo $v2
[/color]b c
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[369 0][/color] [color=red]; read v1 v2
[/color]a\ b c    [color=red]-- 此行为键盘输入[/color]
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[369 0][/color] [color=red]; echo $v1
[/color]a b
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[369 0][/color] [color=red]; echo $v2
[/color]c
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[369 0][/color] [color=red]; o
[/color]
      
复制内容到剪贴板
代码:
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[369 0][/color] [color=red]; read -r v1 v2
[/color]a\ b c
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[369 0][/color] [color=red]; echo $v1
[/color]a\
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[369 0][/color] [color=red]; echo $v2
[/color]b c
[color=blue]-(dearvoid@LinuxEden:tty3)-(~/tmp)-
[369 0][/color] [color=red]; o
[/color]
      
其实问题远比估计的要复杂
他还需要考虑#else和#elif以及相应嵌套情况      
[QUOTE=michaelzhang;570901]其实问题远比估计的要复杂
他还需要考虑#else和#elif以及相应嵌套情况[/QUOTE]
michaelzhang: 请在原主题后面回帖,以免别人看了会觉得莫名其妙