มีคำสั่ง Unix มาตรฐานที่ทำสิ่งที่คล้ายกับตัวอย่างของฉันด้านล่าง
$ <cmd here> 56
$ echo Return code was $?
Return code was 56
$
<cmd here>ควรเป็นสิ่งที่สามารถ fork-execed และปล่อยให้ 56 เป็นรหัสทางออกเมื่อกระบวนการออก exitและreturnเปลือก builtins ไม่เหมาะสมสำหรับสิ่งที่ฉันกำลังมองหาเพราะพวกเขามีผลต่อการกล่าวอ้างเปลือกตัวเองด้วยการออกออกมาจากมัน <some cmd>ควรเป็นสิ่งที่ฉันสามารถดำเนินการในบริบทที่ไม่ใช่เปลือก - เช่นเรียกจากสคริปต์ Python subprocessด้วย
เช่น/usr/bin/falseออกจากทันทีด้วยรหัสส่งคืน 1 แต่ฉันต้องการควบคุมรหัสที่ส่งคืนนั้นอย่างแน่นอน ฉันสามารถบรรลุผลลัพธ์เดียวกันโดยเขียนสคริปต์ตัวคลุมของฉันเอง
$ cat my-wrapper-script.sh # i.e., <some cmd> = ./my-wrapper-script.sh
#!/usr/bin/bash
exit $1
$ ./my-wrapper-script.sh 56
$ echo $?
56
แต่ฉันหวังว่าจะมีคำสั่ง Unix มาตรฐานที่สามารถทำสิ่งนี้ให้ฉันได้
(exit 56)ล่ะ
                trueและfalseบิวด์อินถ้าคุณต้องการส่งคืน 0 หรือ 1
                
exitเป็นคนเดียวที่ฉันคิดได้ แต่มันมีแนวโน้มที่จะจบเชลล์ของคุณbash -c 'exit 56'หรือbash -c "exit $1"อาจทำงานให้คุณ