Saya mengalami masalah yang sama, kutipan akan membantu
[email protected]:~/apps$ apps="abc
> def"
[email protected]:~/apps$ echo $apps
abc def
[email protected]:~/apps$ echo "$apps"
abc
def
Kutipan variabel Anda. Inilah alasannya:
$ f="fafafda
> adffd
> adfadf
> adfafd
> afd"
$ echo $f
fafafda adffd adfadf adfafd afd
$ echo "$f"
fafafda
adffd
adfadf
adfafd
afd
Tanpa tanda kutip, shell menggantikan $TEMP
dengan karakter yang dikandungnya (salah satunya adalah baris baru). Lalu, sebelum memanggil echo
shell membagi string tersebut menjadi beberapa argumen menggunakan Internal Field Separator
(IFS), dan meneruskan daftar argumen yang dihasilkan ke echo
. Secara default, IFS
diatur ke spasi putih (spasi, tab, dan baris baru), jadi shell memotong $TEMP
Anda string ke dalam argumen dan tidak pernah melihat baris baru, karena shell menganggapnya sebagai pemisah, seperti spasi.