Ada dua nama ini: subshell dan child-shell .
Ya, proses anak akan dimulai dengan semua ini:
sh -c 'echo "Hello"'
( echo "hello" )
echo "$(echo "hello")
echo "hello" | cat
Apakah semuanya sama dan berbagi nama yang sama? Apakah semua memiliki properti yang sama?
POSIX memiliki definisi ini :
Lingkungan eksekusi shell terdiri dari ....
Tetapi paragraf terakhir dari tautan di atas memiliki ini:
Lingkungan subkulit harus dibuat sebagai duplikat dari lingkungan shell, kecuali bahwa perangkap sinyal yang tidak diabaikan harus diatur ke tindakan default.
Dan khususnya:
Substitusi perintah, perintah yang dikelompokkan dengan tanda kurung, dan daftar asinkron harus dijalankan dalam lingkungan subkulit. Selain itu, setiap perintah pipa multi-perintah berada dalam lingkungan subkulit; ....
Tidak sh -c 'echo "Hello"'
termasuk di sana, haruskah itu disebut subkulit juga?