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