Istnieją dwie nazwy: podpowłoka i powłoka podrzędna .
Tak, proces potomny zostanie uruchomiony przez dowolną z następujących czynności:
sh -c 'echo "Hello"'
( echo "hello" )
echo "$(echo "hello")
echo "hello" | cat
Czy wszystkie są równoważne i mają tę samą nazwę? Czy wszystkie mają te same właściwości?
POSIX ma następującą definicję :
Środowisko wykonywania powłoki składa się z ....
Ale ostatni akapit powyższego linku ma to:
Środowisko podpowłoki zostanie utworzone jako duplikat środowiska powłoki, z tym wyjątkiem, że pułapki sygnałowe, które nie są ignorowane, powinny być ustawione na działanie domyślne.
A szczególnie:
Podstawianie poleceń, polecenia zgrupowane w nawiasach oraz listy asynchroniczne powinny być wykonywane w środowisku podpowłoki. Ponadto każde polecenie potoku z wieloma poleceniami znajduje się w środowisku podpowłoki; …
Nie sh -c 'echo "Hello"'
ma tam zawartej, czy to też powinno się nazywać podpowłoka?