หากคุณจะเรียกใช้สคริปต์ด้วยsource
คุณสามารถใช้return <x>
ตำแหน่งที่<x>
จะเป็นสถานะการออกจากสคริปต์ (ใช้ค่าที่ไม่เป็นศูนย์สำหรับข้อผิดพลาดหรือเท็จ) แต่ถ้าคุณเรียกใช้สคริปต์ที่เรียกใช้งานได้ (เช่นโดยตรงกับชื่อไฟล์) คำสั่ง return จะส่งผลให้เกิดการบ่น (ข้อความแสดงข้อผิดพลาด "return: สามารถส่งคืน` เท่านั้นจากฟังก์ชั่นหรือสคริปต์ที่มา ')
หากexit <x>
ใช้แทนเมื่อสคริปต์ถูกเรียกใช้source
จะส่งผลให้ออกจากเชลล์ที่เริ่มต้นสคริปต์ แต่สคริปต์ที่ปฏิบัติการได้จะสิ้นสุดลงตามที่คาดไว้
หากต้องการจัดการกับทั้งสองกรณีในสคริปต์เดียวกันคุณสามารถใช้
return <x> 2> /dev/null || exit <x>
วิธีนี้จะจัดการกับการเรียกใช้ที่เหมาะสม นั่นคือสมมติว่าคุณจะใช้คำสั่งนี้ที่ระดับบนสุดของสคริปต์ ฉันจะแนะนำไม่ให้ออกจากสคริปต์โดยตรงจากภายในฟังก์ชัน
หมายเหตุ: <x>
ควรเป็นเพียงตัวเลข
1
อย่างต่อเนื่อง หากสคริปต์นั้นถูกเรียกใช้โดยสคริปต์อื่นคุณอาจต้องการกำหนดชุดรหัสสถานะของคุณเองด้วยความหมายเฉพาะ ตัวอย่างเช่น1
การทดสอบ2
== ล้มเหลวการรวบรวม == ล้มเหลว หากสคริปต์เป็นส่วนหนึ่งของอย่างอื่นคุณอาจต้องปรับเปลี่ยนรหัสเพื่อให้ตรงกับแนวทางปฏิบัติที่ใช้ ตัวอย่างเช่นเมื่อส่วนหนึ่งของชุดทดสอบดำเนินการโดย automake รหัส77
จะใช้เพื่อทำเครื่องหมายการทดสอบที่ข้าม