也许最简单的例子来说:sh读命令在输入中吃了斜杠?
$ echo '\&|'
\&|
$ echo '\&|' | while read in; do echo "$in"; done
&|
看来,“读”命令解释斜线在输入作为逃逸,并删除它们。我需要逐行处理文件而不更改其内容,我不知道如何在此处停止读取智能。有任何想法吗?
也许最简单的例子来说:sh读命令在输入中吃了斜杠?
$ 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
如果这个选项,则反斜杠不作为转义字符。
太棒了,谢谢!我觉得没有找到这个文件的愚蠢,但这是很难搜索的东西之一,因为这些条款是相当通用的:( – 2009-05-29 04:57:55
顺便说一句,你用什么外壳不需要-r?我是使用bash。 – 2009-05-29 04:59:15