コマンド置換に関してbashマニュアルが述べているように:
<ブロック引用>Bash は、コマンドを実行し、コマンド置換をコマンドの標準出力に置き換え、末尾の改行を削除することで展開を実行します。
\b を追加することで \n の削除を阻止します .
これを行うためのよりクリーンな方法は、 $'' を使用することです 次のように引用します:
IFS=$'\n'
最も簡単な方法を思い出しました。debian wheezy の bash でテスト済みです。
IFS="
"
冗談じゃない:)
echo を使用しているためハックです コマンド置換。
prompt> x=$(echo -en "\n")
prompt> echo ${#x}
0
prompt> x=$(echo -en "\n\b")
prompt> echo ${#x}
2
$() 末尾の改行と \b を取り除きます \n を防ぎます テキストに表示される可能性はほとんどありませんが、末尾の改行になることはありません。 IFS=$'\n' 改行で分割するように IFS を設定するより良い方法です。