用一个例子解释也许最容易:
$ echo '\&|'
\&|
$ echo '\&|' | while read in; do echo "$in"; done
&|
似乎“read”命令将输入中的斜杠解释为转义并将其删除。我需要逐行处理文件而不改变其内容,我不知道如何在这里停止阅读。有什么想法吗?
答案 0 :(得分:37)
评论:http://www.vias.org/linux-knowhow/bbg_sect_08_02_01.html:
-r
如果给出此选项,则反斜杠不会充当转义字符。 反斜杠被认为是一部分 这条线。特别是,a 可能不会使用反斜杠换行符对 作为一个延续线。
它适用于我的机器。
$ echo '\&|' | while read -r in; do echo "$in"; done
\&|
答案 1 :(得分:6)
根据http://www.ss64.com/bash/read.html使用read -r
:
-r
如果给出此选项,则反斜杠不会作为转义字符。