घुंघराले ब्रेस फ़ंक्शन कॉलिंग शेल प्रक्रिया के भीतर चलेंगे, जब तक कि उन्हें अपने स्वयं के उप-संस्करण की आवश्यकता न हो:
- जब आप उन्हें पृष्ठभूमि में चलाते हैं
&
- जब आप उन्हें एक पाइपलाइन में लिंक के रूप में चलाते हैं
पुनर्निर्देशन या अतिरिक्त एन.वी. चर एक नई उपधारा को बाध्य नहीं करेंगे:
hw(){
echo hello world from $BASHPID
echo var=$var
}
var=42 hw >&2
echo $BASHPID #unexports var=42 and restores stdout here
यदि आप कर्ल के बजाय कोष्ठक के साथ फ़ंक्शन को परिभाषित करते हैं:
hw()(
echo hello world from $BASHPID
)
hw
echo $BASHPID
यह हमेशा एक नई प्रक्रिया में चलेगा।
कमांड प्रतिस्थापन $()
भी हमेशा बैश में प्रक्रियाएं बनाता है (लेकिन यदि आप इसके अंदर बिलियन चलाते हैं तो ksh में नहीं)।