Mengapa tidak ada baris baru di akhir mengutip subkulit dan meneruskan hasilnya ke gema?

9

Ketika saya melakukan ls | grep pngoutput dari grep adalah:

2015-05-15-200203_1920x1080_scrot.png 
2015-05-16-025536_1920x1080_scrot.png

(nama file, baris baru, nama file, baris baru)

kemudian, echo $(ls | grep png)output:

2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png

(nama file, spasi dari pemisahan kata, nama file, baris baru !! dari gema !!)

Tidak apa-apa, tetapi ketika saya melakukan ini untuk mencegah kata splitting:, echo "$(ls | grep png)"hasilnya adalah:

2015-05-15-200203_1920x1080_scrot.png 
2015-05-16-025536_1920x1080_scrot.png

Dan pertanyaan saya adalah, di mana baris kedua (satu harus dari grep dan satu dari gema)?

Mikhal
sumber

Jawaban:

8

Itu dari baris baru echo, Anda dapat memverifikasi dengan menggunakan echo -nuntuk menekan trailing baris baru:

echo -n "$(ls | grep png)"

Substitusi perintah menghapus semua baris baru, baris baru ditambahkan oleh echo, greptidak ada hubungannya di sini.

cuonglm
sumber
"Pergantian perintah menghapus semua baris baru" - itu saja! Terima kasih
MichalH