มันขึ้นอยู่กับสภาพแวดล้อม แต่ฉันบอกว่ามันเป็นสไตล์ที่ไม่ดี
ระบบที่คล้าย Unix มีข้อตกลงที่รัดกุมซึ่งสถานะการออกเป็น 0 หมายถึงความสำเร็จและสถานะการออกที่ไม่ใช่ศูนย์ใด ๆ แสดงถึงความล้มเหลว โปรแกรมบางตัว แต่ไม่ทั้งหมดแยกแยะความแตกต่างระหว่างความล้มเหลวที่แตกต่างกันด้วยรหัสการออกที่ไม่เป็นศูนย์ที่แตกต่างกัน เช่นgrep
โดยทั่วไปแล้วจะส่งกลับ 0 หากพบรูปแบบ, 1 ถ้าไม่ใช่และ 2 (หรือมากกว่า) หากมีข้อผิดพลาดเช่นไฟล์ที่ขาดหายไป
การประชุมนี้มีสายสวยมากในหอย Unix ตัวอย่างเช่น, in sh
, bash
และ shell-like Bourne อื่น ๆif
คำสั่งจะถือว่าสถานะการออก 0 เป็นความสำเร็จ / true และสถานะทางออกที่ไม่ใช่ศูนย์ว่าเป็นความล้มเหลว / เท็จ:
if your-command
then
echo ok
else
echo FAILURE
fi
ฉันเชื่อว่าอนุสัญญาภายใต้ MS Windows นั้นคล้ายกัน
ตอนนี้ไม่มีอะไรหยุดคุณจากการเขียนโปรแกรมของคุณเองที่ใช้รหัสทางออกที่ผิดปกติโดยเฉพาะอย่างยิ่งถ้าไม่มีอะไรจะโต้ตอบกับมัน แต่ระวังให้ดีว่าคุณกำลังละเมิดข้อตกลงที่จัดตั้งขึ้นเป็นอย่างดีและอาจกลับมากัดคุณในภายหลัง .
วิธีปกติสำหรับโปรแกรมที่จะส่งคืนข้อมูลประเภทนี้คือการพิมพ์ไปที่stdout
:
status = $(your-command)
echo Result is $status
set -e
ที่ไหนสักแห่ง