ส่งออกข้อความไปยังหน้าจอโดยใช้คำสั่ง Linux Echo

คู่มือนี้จะแสดงวิธีการพิมพ์ข้อความไปยัง หน้าต่างเทอร์มินัล ใช้ ลินุกซ์ คำสั่งเสียงสะท้อน

ใช้ด้วยตัวเองในเทอร์มินัล คำสั่ง echo ไม่ได้มีประโยชน์อย่างยิ่ง แต่เมื่อใช้เป็นส่วนหนึ่งของสคริปต์ สามารถใช้เพื่อแสดงคำแนะนำ ข้อผิดพลาด และการแจ้งเตือนได้

ตัวอย่างการใช้งาน Linux Echo Command

ในรูปแบบที่ง่ายที่สุด วิธีที่ง่ายที่สุดในการส่งข้อความไปยังเทอร์มินัลมีดังนี้:

เสียงสะท้อน "สวัสดีชาวโลก"

คำสั่งดังกล่าวส่งออกคำว่า "สวัสดีชาวโลก" ไปที่หน้าจอ (ลบเครื่องหมายคำพูด)

Linux echo เอาต์พุตพื้นฐาน

โดยค่าเริ่มต้น คำสั่ง echo จะแสดงอักขระบรรทัดใหม่ที่ท้ายสตริง

ในการทดสอบนี้ ให้ลองใช้คำสั่งต่อไปนี้ในหน้าต่างเทอร์มินัล:

echo "สวัสดีชาวโลก" && echo "ลาก่อนโลก"

คุณจะเห็นว่าผลลัพธ์เป็นดังนี้:

สวัสดีชาวโลก
ลาก่อนโลก

คุณสามารถละอักขระบรรทัดใหม่ได้โดยเพิ่มสวิตช์ลบ n (-n) ดังนี้:

echo -n "สวัสดีชาวโลก" && echo "ลาก่อนโลก"
Linux echo โดยไม่ต้องขึ้นบรรทัดใหม่

ผลลัพธ์จากคำสั่งข้างต้นเป็นดังนี้:

สวัสดีชาวโลก ลาโลก

การใช้อักขระพิเศษ

อีกสิ่งหนึ่งที่ควรพิจารณาเมื่อใช้คำสั่ง echo คือวิธีจัดการกับอักขระพิเศษ

Linux echo พร้อมอักขระพิเศษ

ตัวอย่างเช่น ลองทำสิ่งต่อไปนี้ในหน้าต่างเทอร์มินัล:

echo "สวัสดีชาวโลก\r\nลาก่อนโลก"

ในโลกอุดมคติ \r และ \n จะทำหน้าที่เป็นอักขระพิเศษเพื่อเพิ่มบรรทัดใหม่ แต่กลับไม่เป็นเช่นนั้น ผลลัพธ์จะเป็นดังนี้:

สวัสดีชาวโลก\r\nลาก่อนโลก

คุณสามารถเปิดใช้งานอักขระพิเศษโดยใช้คำสั่ง echo โดยใส่สวิตช์ -e ดังต่อไปนี้:

echo -e "สวัสดีชาวโลก\r\nลาก่อนโลก"

คราวนี้ผลลัพธ์จะเป็นดังนี้:

สวัสดีชาวโลก
ลาก่อนโลก

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

echo -E "สวัสดีชาวโลก\r\nลาก่อนโลก"

อักขระพิเศษใดที่จัดการโดยใช้สวิตช์ -e

  • \\ แบ็กสแลช
  • \a alert
  • \b แบ็คสเปซ
  • \c ไม่มีผลผลิตเพิ่มเติม
  • \e หนี
  • \f แบบฟอร์มฟีด
  • \n บรรทัดใหม่
  • \r การคืนรถ
  • \t แท็บแนวนอน
  • \v แท็บแนวตั้ง
  • \ 0NNN ค่าฐานแปดที่มี 1 ถึง 3 หลัก
  • \xHH ไบต์ที่มีค่าเลขฐานสิบหก
Linux echo พร้อมอักขระพิเศษอื่น ๆ

มาลองดูสักสองสามข้อนี้กัน เรียกใช้สิ่งต่อไปนี้ คำสั่งในเทอร์มินัล:

echo -e "hel\blo โลก"

คำสั่งดังกล่าวจะแสดงผลต่อไปนี้:

สวัสดีโลก

เห็นได้ชัดว่าไม่ใช่สิ่งที่คุณต้องการส่งออกไปยังหน้าจอ แต่คุณได้รับจุดที่แบ็กสแลช b ลบตัวอักษรก่อนหน้า

ลองทำสิ่งต่อไปนี้ในหน้าต่างเทอร์มินัล:

echo -e "สวัสดี\c โลก"

คำสั่งนี้ส่งออกทุกอย่างจนถึงแบ็กสแลชและค ยกเว้นอย่างอื่นรวมทั้งขึ้นบรรทัดใหม่

ตัวละครสายและการคืนรถ

ดังนั้นความแตกต่างระหว่างอักขระขึ้นบรรทัดใหม่และการขึ้นบรรทัดใหม่คืออะไร? อักขระขึ้นบรรทัดใหม่จะย้ายเคอร์เซอร์ลงไปที่บรรทัดถัดไป ในขณะที่การขึ้นบรรทัดใหม่จะย้ายเคอร์เซอร์กลับไปที่ด้านซ้าย

Linux echo พร้อมการส่งคืนและบรรทัดใหม่

ตัวอย่างเช่น ป้อนข้อมูลต่อไปนี้ในหน้าต่างเทอร์มินัลของคุณ:

echo -e "สวัสดี\nโลก"

ผลลัพธ์ของคำสั่งดังกล่าวทำให้คำสองคำอยู่ในบรรทัดที่ต่างกัน:

สวัสดี
โลก

ลองใช้สิ่งนี้ในหน้าต่างเทอร์มินัล:

echo -e "สวัสดี\rโลก"

ความแตกต่างระหว่างการขึ้นบรรทัดใหม่และการขึ้นบรรทัดใหม่จะชัดเจนมาก ดังต่อไปนี้จะแสดงเป็นผลลัพธ์:

โลก

มีการแสดงคำว่า สวัสดี การขึ้นบรรทัดใหม่นำเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัด และคำว่า world ก็ปรากฏขึ้น

จะชัดเจนขึ้นเล็กน้อยหากคุณลองทำสิ่งต่อไปนี้:

echo -e "สวัสดี\rhi"

ผลลัพธ์จากด้านบนมีดังนี้:

สวัสดี. 

ในความเป็นจริง ผู้คนจำนวนมากยังคงใช้สัญลักษณ์ \r\n เมื่อส่งออกไปยังบรรทัดใหม่ อย่างไรก็ตาม บ่อยครั้ง คุณสามารถหนีไปได้ด้วย \n