Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

การออกจากสคริปต์ Bash อย่างสง่างามด้วยคำสั่ง exit – ตัวอย่างและแนวทางปฏิบัติที่ดีที่สุด

สคริปต์ 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), ดู, หรือบันทึกได้