题
也许最简单的用一个例子来解释:
$ 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结果 如果这个选项被给出,反斜线不充当转义字符。
不隶属于 StackOverflow