簡単な例として、ソースコードファイルがたくさんあります。これらすべてのファイルの "head"コマンド出力を変数に保存したいと思います。
私は試した:
output=$(head $file)
ただし、\n
出力を変数に保存すると、すべての文字が自動的に切り捨てられます。
文字を削除せずにコマンド出力をそのまま保存するにはどうすればよいですか\n
?
ベストアンサー1
これは「コマンド拡張」の既知のバグ、または$(...)
最後`...`
の改行が切り捨てられるバグです。
あなたの状況が次の場合:
$ output="$(head -- "$file"; echo x)" ### capture the text with an x added.
$ output="${output%?}" ### remove the last character (the x).
出力値が変更されます。