改行を含む文字列の変数をechoすると改行が消えるパターン
以下のようにecho
で改行を含む文字列の変数を出力すると改行が消える。
FOO=$(ls)
echo $FOO
bin boot dev etc home lib lib32 lib64 libx32 lost+found media mnt opt proc root run sbin snap srv sys tmp usr var
ls
コマンドは標準では改行区切りで出力されるので、FOO
には改行を含む文字列が入っている。
しかし、変数FOO
に格納したうえで$FOO
をecho
で出力すると改行が消えている。
対処
変数をダブルクオートで囲い、echo "$FOO"
とすると改行が消えない。
FOO=$(ls)
echo "$FOO"
bin
boot
dev
etc
home
lib
lib32
lib64
libx32
lost+found
media
mnt
opt
proc
root
run
sbin
snap
srv
sys
tmp
usr
var
\第一線のプログラマーの行動原理を学べる!/