ความแตกต่างระหว่าง 'echo' และ 'echo -e' [ปิด]


25

ความแตกต่างระหว่างechoและecho -eคืออะไร? ควรใช้เครื่องหมายคำพูด ("" หรือ '') ใดกับคำสั่ง echo เช่น: echo "Print statement"หรือecho 'Print statement'? นอกจากนี้มีตัวเลือกอะไรบ้างที่สามารถใช้ได้พร้อมกับecho?


3
เปลือกอะไร echo -eไม่ได้ถูกกำหนดโดย POSIX และอาจแตกต่างกันไปตามเชลล์
jordanm

สิ่งนี้ตอบคำถามของคุณหรือไม่ unix.stackexchange.com/questions/65803/…
dhag

2
ใช้เพื่ออ่านคู่มือman echo echo
พี่เลี้ยง

ก้องไม่ได้ดำเนินการขัดแย้งของมันเป็นคำสั่งก็แค่ ... echos พวกเขา
โธ

คำตอบ:


33

echoด้วยตัวเองแสดงบรรทัดข้อความ มันจะทำอะไรก็ได้ภายใน"..."เครื่องหมายอัญประกาศสองตัวต่อไปนี้ตามตัวอักษรและพิมพ์ออกมาอย่างที่มันเป็น อย่างไรก็ตามด้วยการที่echo -eคุณกำลังechoเปิดใช้งานการตีความเครื่องหมายทับขวา ดังนั้นในใจนี่คือตัวอย่างบางส่วน

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

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

หมายเหตุ: \nเป็นบรรทัดใหม่คือการคืนสินค้า หากคุณต้องการที่จะรู้ว่าลำดับอื่น ๆ ได้รับการยอมรับตามecho -eประเภทในman echoterminal ของคุณ


2
echoถูกติดตั้งไว้ในเปลือกหอยส่วนใหญ่ man echoจะชอบเอกสารechoคำสั่งแบบสแตนด์อโลนแทน
Stéphane Chazelas

คุณกำลังอธิบายพฤติกรรมของ GNU echoหรือเชลล์ GNU echoเมื่อไม่ได้อยู่ในโหมดที่สอดคล้อง Unix ที่อื่นพฤติกรรมมักจะแตกต่างกัน
Stéphane Chazelas

3

ในส่วนใหญ่ของ SHELL echoลาดเทรับลำดับหนี ( \n \t) ในขณะที่echo -eสามารถ

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

การเสนอราคาเดี่ยวและการเสนอราคาซ้ำเป็นส่วนใหญ่สำหรับการจัดการปัญหาการแก้ไข คุณสามารถดูรายละเอียดเพิ่มเติมได้ที่นี่ ทำไมเสียงก้องละเว้นตัวละครพูดของฉัน


นั่นคือวิธีอื่น ๆ ในเชลล์ส่วนใหญ่ (ksh88, ksh93, pdksh, mksh, Bourne, zsh, dash, bash และ sh ของระบบที่สอดคล้องกับ Unix ทั้งหมดบางอันเช่น ksh93 หรือ bash เฉพาะในบางสภาพแวดล้อม) echoจะขยายลำดับการยกเว้น การechoใช้งานที่ยอมรับ-eไม่เป็นไปตาม POSIX
Stéphane Chazelas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.