0 หมายถึงความสำเร็จจำนวนเต็มบวกหมายถึงความล้มเหลว มีรหัสข้อผิดพลาด 255 ที่แตกต่างกัน แต่มีค่าสงวนไว้ที่ 126 และสูงกว่าเพื่อระบุว่าโปรแกรมไม่สามารถเริ่มต้น (126 หรือ 127) หรือถูกฆ่าโดยสัญญาณ (129 และสูงกว่า) ดูรหัสทางออกเริ่มต้นเมื่อกระบวนการสิ้นสุดลง? และฉันสามารถใช้ค่าส่งคืน / ออกในฟังก์ชันทุบตี / สคริปต์ได้อย่างไร สำหรับข้อมูลเพิ่มเติม.
สถานะการออกของเชลล์สคริปต์คือสถานะการออกของคำสั่งสุดท้ายที่สคริปต์ดำเนินการ ตัวอย่างเช่น
#!/bin/sh
somecommand
ส่งคืนสถานะทางออกของsomecommand
ในขณะที่
#!/bin/sh
somecommand
exit 0
ผลตอบแทน 0 โดยไม่คำนึงถึงสิ่งที่somecommand
กลับมา สคริปต์ที่สองนี้สามารถเขียนได้
#!/bin/sh
somecommand
true
การวางexit 0
ที่ส่วนท้ายของสคริปต์ไม่จำเป็นว่าจะต้องคืนค่า 0 ซึ่งจะทำให้ค่านั้นคืนเป็น 0 เมื่อถึงจุดสิ้นสุดของสคริปต์ ตัวอย่างเช่นสคริปต์ต่อไปนี้ส่งคืน 3 เสมอ:
#!/bin/sh
exit 3
exit 0
สคริปต์ต่อไปนี้จะส่งคืนรหัสข้อผิดพลาดเสมอนอกเหนือจากการแสดงข้อความเกี่ยวกับข้อผิดพลาดทางไวยากรณ์:
#!/bin/sh
}
exit 0
สคริปต์ต่อไปนี้จะคืนค่า 1 หรือ 0 ขึ้นอยู่กับอาร์กิวเมนต์แรก:
#!/bin/sh
if [ "$1" = "foo" ]; then
exit 1
fi
exit 0
สคริปต์ต่อไปนี้จะคืนค่าสถานะsomecommand
เนื่องจากset -e
จะทำให้สคริปต์ออกหากsomecommand
ล้มเหลว:
#!/bin/sh
set -e
somecommand
exit 0
exit 0
จะจบการทำงานด้วยรหัสการออกเป็น 0 ไม่ว่าจะเกิดอะไรขึ้นภายในสคริปต์