シェルの変数に代入した値を改行込みで出力したい!


やりたいことと困ったこと

git diff --name-only origin/master | grep -e '\.\(jpg\|png\|gif\)'

この複数行の出力(masterブランチとの差分があるファイル名一覧)を、バッククオートで囲んで $changed_files 変数に1行毎に代入したい。

changed_files=`git diff --name-only master | grep -e '\.\(jpg\|png\|gif\)'`

しかし、そのままechoで出力しても1行にまとめて表示されてしまう。

$ echo $changed_files
VERY_LARGE_PHOTO.jpg hoge.jpg

結論

echoをする時に、ダブルクオートを使うと改行コードを含めて表示できる。
つけていないと、改行は省略されて表示されてしまう。

$ echo "$changed_files"
VERY_LARGE_PHOTO.jpg
hoge.jpg