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.