質問

おそらく最も簡単な例を挙げて説明すると:

$ 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
\&|

他のヒント

http://www.ss64.com/bash/read.htmlあたりとして、read -rを使用しますのます:

  

-r
      このオプションが指定された場合、バックスラッシュはエスケープ文字として機能しません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top