GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mempertahankan jeda baris saat menyimpan keluaran perintah ke variabel?

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.


Linux
  1. Bagaimana Cara Menetapkan Output Perintah Ke Variabel Shell?

  2. Menyimpan Output Perintah Dalam Variabel Shell?

  3. Bagaimana Cara Mengatur Variabel Sama Dengan Output Dari Perintah Di Grub2?

  1. Bagaimana Mengenalinya Jika Output Dari Perintah Atau Skrip Shell Adalah Stdout Atau Stderr?

  2. Cara menggemakan Baris Baru di Bash Shell Script

  3. Bagaimana cara menyimpan perintah dalam variabel dalam skrip Shell?

  1. Cara Menetapkan Output dari Perintah Linux ke Variabel

  2. [Linux] :Cara mengecualikan direktori saat menggunakan perintah shell "tar"

  3. Tambahkan jeda baris ke keluaran perintah