मैं उपयोग कर रहा था मेरी पार्टी कार्यों में "बाहर निकलने के 1" बयान पूरी स्क्रिप्ट समाप्त करने के लिए और यह ठीक काम किया:क्या कोई बैश फ़ंक्शन लिखने का कोई तरीका है जो पूरे निष्पादन को रोकता है, इससे कोई फर्क नहीं पड़ता कि इसे कैसे कहा जाता है?
function func()
{
echo "Goodbye"
exit 1
}
echo "Function call will abort"
func
echo "This will never be printed"
लेकिन तब मुझे एहसास हुआ कि यह काम जब की तरह कहा जाता है ऐसा नहीं करता है:
res=$(func)
मैं समझता हूँ कि मैं एक subshell बनाया है और "बाहर निकलने के 1" कि subshell और नहीं प्राथमिक एक ....
लेकिन रोकता वहाँ एक रास्ता एक समारोह जो पूरे निष्पादन रोकता लिखने के लिए है, कोई फर्क नहीं पड़ता कैल कैसा है एलईडी? मुझे केवल वास्तविक वापसी मूल्य (फ़ंक्शन द्वारा प्रतिबिंबित) प्राप्त करने की आवश्यकता है।
मैं सी 'सेटिड()' फ़ंक्शन के बारे में सोच रहा था, लेकिन यह बिल्कुल वैसे ही काम नहीं करता है। 'Setid' कमांड का उपयोग न करने के लिए अपडेट किया गया है, क्योंकि हमें एक नई प्रक्रिया शुरू करने की आवश्यकता होगी। – FatalError
काम करता है।फ़ंक्शन घोंसले का कोई भी स्तर, कोई प्रवाह ... बस काम करता है। – LiMar
क्या यह सामान्य तर्क() फ़ंक्शन को बाहर करना संभव है जो पहले तर्क के कोड का उपयोग कर बाहर निकलता है, उदा। 'abort 2'' kill' से पहले 'जाल' निकास 2 "TERM' करेगा? –