シェルスクリプトで実行したコマンドの結果の改行をそのままにする
bash 系の話だけど, $()
とかバッククオートでコマンドを実行してその標準出力を得るさいに, そのままだと改行がなくなってしまう. そんな時は全体をダブルクオートでくくれば改行を残せる
$ echo $(ls -l /tmp/)
total 56 -rw------- 1 kosei wheel 849 12 7 09:13 Config-pAimbL -rw-r--r-- 1 kosei wheel 23020 12 4 22:40 debug.log drwx------ 4 kosei wheel 136 12 6 00:16 launch-8y9r7a drwx------ 3 kosei wheel 102 12 1 16:28 launch-O688DH drwx------ 3 kosei wheel 102 12 1 16:28 launch-Obe9Hd drwx------ 3 kosei wheel 102 12 1 16:28 launch-mH6LiV drwx------ 3 kosei wheel 102 12 1 16:28 launchd-156.GLXAJQ srwxrwxrwx 1 kosei wheel 0 12 1 16:29 mongodb-27017.sock drwxr-xr-x 67 kosei wheel 2278 12 4 22:53 please-sleep
bash-3.2$ echo "$(ls -l /tmp/)"
total 56
-rw------- 1 kosei wheel 849 12 7 09:13 Config-pAimbL
-rw-r--r-- 1 kosei wheel 23020 12 4 22:40 debug.log
drwx------ 4 kosei wheel 136 12 6 00:16 launch-8y9r7a
drwx------ 3 kosei wheel 102 12 1 16:28 launch-O688DH
drwx------ 3 kosei wheel 102 12 1 16:28 launch-Obe9Hd
drwx------ 3 kosei wheel 102 12 1 16:28 launch-mH6LiV
drwx------ 3 kosei wheel 102 12 1 16:28 launchd-156.GLXAJQ
srwxrwxrwx 1 kosei wheel 0 12 1 16:29 mongodb-27017.sock
drwxr-xr-x 67 kosei wheel 2278 12 4 22:53 please-sleep