Kıvrımlı parantez işlevleri, kendi kabuklarına ihtiyaç duymadıkça, çağrılan kabuk işleminde çalışır:
- onları arka planda çalıştırdığınızda
&
- onları bir boru hattında bir link olarak çalıştırdığınızda
Yönlendirmeler veya ekstra ortam değişkenler yeni bir alt kabuğu zorlamaz:
hw(){
echo hello world from $BASHPID
echo var=$var
}
var=42 hw >&2
echo $BASHPID #unexports var=42 and restores stdout here
İşlevi, kıvrımlar yerine parantez içinde tanımlarsanız:
hw()(
echo hello world from $BASHPID
)
hw
echo $BASHPID
her zaman yeni bir süreçte çalışacaktır.
Komut ikame $()
de her zaman bash'te süreçler yaratır (fakat eğer onun içinde yerleşikler çalıştırırsanız ksh içinde değil).