Bir subshell oluşturmak için Bash kuralını yanlış anlamış gibiyim. Parantezlerin daima kendi süreci olarak çalışan bir alt kabuk yarattığını düşündüm.
Ancak, durum böyle görünmüyor. Kod Parçacığı A'da (aşağıda), ikinci sleepkomut ( pstreebaşka bir terminalde belirlendiği gibi) ayrı bir kabukta çalışmaz . Ancak, Kod Parçacığı B'de, ikinci sleepkomut mu ayrı kabukta çalıştırın. Parçacıklar arasındaki tek fark, ikinci pasajın parantez içinde iki komut içermesidir.
Biri lütfen alt kabukların ne zaman oluşturulduğunun kuralını açıklayabilir mi?
KOD SNIPPET A:
sleep 5
(
sleep 5
)
KOD SNIPPET B:
sleep 5
(
x=1
sleep 5
)
forkve alt süreç çağrılarak (harici komutları çalıştırmak için) yaratılırfork + exec. Ama ilk paragrafınız bununfork + execdenizaltı için de çağrıldığını gösteriyor . Neyi yanlış yapıyorum?