Perbedaan antara 'echo' dan 'echo -e' [ditutup]

25

Apa perbedaan antara echodan echo -e? Kutipan ("" atau '') manakah yang harus digunakan dengan perintah gema? yaitu: echo "Print statement"atau echo 'Print statement'? Juga, apa saja opsi yang tersedia yang dapat digunakan bersama echo?

Venkatesh
sumber
3
Shell apa? echo -etidak didefinisikan oleh POSIX dan mungkin bervariasi berdasarkan shell.
jordanm
Apakah ini menjawab pertanyaan Anda? unix.stackexchange.com/questions/65803/…
dhag
2
gunakan man echountuk membaca manual untuk echo.
pengasuh
gema tidak mengeksekusi argumennya sebagai perintah, itu hanya ... gema mereka
Anthon

Jawaban:

33

echodengan sendirinya menampilkan satu baris teks. Ini akan mengambil apa pun dalam "..."dua tanda kutip berikut , secara harfiah, dan hanya mencetak apa adanya. Namun dengan echo -eAnda membuat echountuk mengaktifkan lolos backslash. Jadi dengan mengingat hal ini di sini adalah beberapa contoh

INPUT: echo "abc\n def \nghi" 
OUTPUT:abc\n def \nghi

INPUT: echo -e "abc\n def \nghi"
OUTPUT:abc
 def 
ghi

Catatan: \nadalah saluran baru, yaitu carriage return. Jika Anda ingin tahu urutan apa yang dikenali berdasarkan echo -ejenis di man echoterminal Anda.

3kstc
sumber
2
echosudah terpasang di sebagian besar shell. man echoakan suka mendokumentasikan echoperintah mandiri sebagai gantinya.
Stéphane Chazelas
Anda menggambarkan perilaku GNU echoatau shell GNU echosaat tidak dalam mode kepatuhan Unix. Di tempat lain, perilaku biasanya akan berbeda.
Stéphane Chazelas
3

Di sebagian besar SHELL echotidak dapat mengambil urutan escape ( \n \t). Dimana echo -ebisa

echo -e " This is \n an \t example"

Kutipan tunggal dan kutipan ganda sebagian besar untuk menangani masalah interpolasi. Anda dapat menemukan detail lebih lanjut di sini, Mengapa gema mengabaikan karakter kutipan saya?

Govind Kailas
sumber
Itu sebaliknya. Pada kebanyakan shell (ksh88, ksh93, pdksh, mksh, Bourne, zsh, dash, bash, dan sh dari semua sistem yang sesuai dengan Unix, beberapa di antaranya seperti ksh93 atau bash hanya di beberapa lingkungan) echomemang memperluas urutan pelarian. Sebuah echoimplementasi yang menerima -etidak POSIX compliant.
Stéphane Chazelas