コマンド置換に関して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 を設定するより良い方法です。