สคริปต์ Bash/Shell ปกติจะทำงานตามลำดับจนกว่าจะจบโค้ดทั้งหมดในไฟล์ คำสั่ง exit จะทำให้สคริปต์หยุดทำงานก่อนเวลาตามเงื่อนไขที่คุณกำหนด
ไวยากรณ์คำสั่ง exit
นี่คือไวยากรณ์ของคำสั่ง exit ซึ่งใช้ได้ในสคริปต์ Bash/Shell:
exit STATUS
โปรดทราบว่า:
- STATUS เป็นพารามิเตอร์ทางเลือกที่กำหนด สถานะการออก (exit status) ของสคริปต์
- สถานะการออก บอกโปรแกรมอื่นๆ ว่าสคริปต์ทำงานสำเร็จหรือไม่
- ค่าเริ่มต้นจะเป็น 0 หรือ สถานะการออกของคำสั่งล่าสุดที่สคริปต์รัน
- สถานะการออกเป็น 0 แสดงถึง ความสำเร็จ ค่าใดๆ ที่มากกว่า 0 แสดงถึง ความล้มเหลว
ตัวอย่างสคริปต์ Bash
นี่คือตัวอย่างสคริปต์ที่ใช้คำสั่ง exit พร้อมคำอธิบายว่ามันทำงานอย่างไรในแต่ละกรณี:
#!/bin/bash
# ตัวแปรทดสอบ ที่สามารถตั้งค่าเป็น TRUE หากมีข้อผิดพลาด
ERROR=false
# บรรทัดนี้จะพิมพ์เสมอ เพราะอยู่ก่อนคำสั่ง exit ใดๆ
echo "Hello LinuxScrew!"
# หากมีข้อผิดพลาด...
if $ERROR ; then
# แจ้งผู้ใช้ว่ามีข้อผิดพลาด
echo "There was an error"
# ออกจากโปรแกรมด้วยสถานะ 1 (บ่งชี้ว่าสคริปต์ไม่สำเร็จ)
exit 1
fi
# ออกจากสคริปต์ด้วยสถานะ 0 (บ่งชี้ว่าสคริปต์สำเร็จ)
exit 0
# บรรทัดนี้จะไม่ถูกพิมพ์ לעולם เพราะอยู่หลังคำสั่ง exit จึงไม่มีโอกาสรัน
echo "This is a pointless line"
‘#!’ ในสคริปต์ Shell ของ Linux คืออะไร?
ตามที่แสดงไว้ exit เป็นคำสั่งง่ายๆ ที่เพียงแค่ออกจากสคริปต์ พร้อมสถานะที่สามารถตรวจสอบภายหลังได้ว่า สคริปต์สำเร็จหรือไม่
การตรวจสอบสถานะการออกของโปรแกรมหรือสคริปต์
สถานะการออกของคำสั่งที่รันล่าสุด สามารถเข้าถึงได้จาก shell ด้วยคำสั่งต่อไปนี้:
echo $?
ข้อมูลที่สคริปต์ส่งออก (Output) อย่างไร?
ข้อมูลที่สคริปต์ส่งออก แยกจากสถานะการออก (exit status) การแสดงผลของโปรแกรมและคำสั่งอย่าง echo จะถูกส่งออกผ่าน STDOUT – ซึ่งสามารถส่งต่อ (redirect), ดู, หรือบันทึกได้