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 ไม่ว่าจะเกิดอะไรขึ้นภายในสคริปต์