bashのIFSに改行のみを設定するのにはまった。 シェルスクリプト中でコードとして定義 IFS=' 'もちろんコマンドライン中ではあり得ない表記だ。 ¥’¥n’ これに気がつくまで時間がかかった $'string' の形式を持つ単語は特殊な扱いを受けます。 この単語は string に展開され、 それから ANSI C 標準で仕様が決められている、 バックスラッシュでエスケープされている文字に置き換えられます。 バックスラッシュエスケープシーケンスは、 (もし存在すれば) 以下のようにデコードされます: \n 改行文字 $ echo "foo bar buzz" >> a $ echo "foo bar buzz" >> a $ echo "foo bar buzz" >> a $ cat a foo bar buzz foo bar buzz foo bar buzz $ (IFS=$