Saya tampaknya salah paham aturan Bash untuk membuat subkulit. Saya pikir tanda kurung selalu membuat subkulit, yang berjalan sebagai prosesnya sendiri.
Namun, sepertinya tidak demikian. Dalam Cuplikan Kode A (di bawah), sleepperintah kedua tidak berjalan di shell yang terpisah (sebagaimana ditentukan oleh pstreeterminal lain). Namun, di Cuplikan Kode B, kedua sleepperintah tidak dijalankan di shell terpisah. Satu-satunya perbedaan antara snippet adalah bahwa snippet kedua memiliki dua perintah di dalam tanda kurung.
Bisakah seseorang tolong jelaskan aturan ketika subkulit dibuat?
SNIPPET KODE A:
sleep 5
(
sleep 5
)
SNIPPET KODE B:
sleep 5
(
x=1
sleep 5
)
forkdan proses anak dibuat (untuk menjalankan perintah eksternal) dengan memanggilfork + exec. Tapi para Anda yang pertama menyarankan agarfork + execdipanggil juga untuk subkulit. Apa yang salah di sini?