क्या एक मानक यूनिक्स कमांड है जो नीचे मेरे उदाहरण के समान कुछ करता है
$ <cmd here> 56
$ echo Return code was $?
Return code was 56
$
<cmd here>कुछ ऐसा होना चाहिए जो कांटा-निष्पादित हो सकता है और प्रक्रिया से बाहर निकलने पर 56 को बाहर निकलने के कोड के रूप में छोड़ देता है। exitऔरreturn खोल builtins मैं क्योंकि वे प्रेरक खोल ही को प्रभावित करने के लिए क्या देख रहा हूँ इसे से बाहर निकल कर के लिए अनुपयुक्त हैं। <some cmd>कुछ ऐसा होना चाहिए जिसे मैं गैर-शेल संदर्भों में निष्पादित कर सकूं - जैसे, पायथन स्क्रिप्ट से 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
लेकिन मुझे उम्मीद है कि एक मानक यूनिक्स कमांड मौजूद है जो मेरे लिए ऐसा कर सकता है।
(exit 56)?
trueऔर falseबनाया-इन यदि आप 0 या 1. वापस जाने के लिए की जरूरत है
exitकेवल वही है जिसके बारे में मैं सोच सकता हूं, लेकिन यह आपके खोल को समाप्त कर देता है।bash -c 'exit 56'याbash -c "exit $1"आपके लिए काम कर सकता है।