也许最容易用一个例子来解释:
$ echo '\&|'
\&|
$ echo '\&|' | while read in; do echo "$in"; done
&|
似乎该read
命令将输入中的反斜杠解释为转义并删除它们。我需要在不更改其内容的情况下逐行处理文件,而且我不确定如何在此处停止读取智能。有任何想法吗?
根据: 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
如果给出此选项,则反斜杠不充当转义字符。