也许最简单的用一个例子来解释:

$ echo '\&|'
\&|
$ echo '\&|' | while read in; do echo "$in"; done
&|

看来,“读”命令解释在输入作为逃逸斜线并除去它们。我需要处理的文件里逐行而不改变它的内容,我不知道如何停止聪明在这里阅读。任何想法?

有帮助吗?

解决方案

Accrding到: http://www.vias.org/linux-knowhow/bbg_sect_08_02_01 html的

  

-r结果   如果给出该选项,反斜杠不作为转义字符。   反斜杠被认为是部分   线。特别是,   反斜杠换行符对可以不使用   作为续行。

它的工作原理在我的机器上。

$ echo '\&|' | while read -r in; do echo "$in"; done
\&|

其他提示

使用read -r,按照 http://www.ss64.com/bash/read.html

  

-r结果       如果这个选项被给出,反斜线不充当转义字符。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top