Có hai tên này: a subshell và một đứa trẻ vỏ .
Có, một quá trình con sẽ được bắt đầu bởi bất kỳ điều này:
sh -c 'echo "Hello"'
( echo "hello" )
echo "$(echo "hello")
echo "hello" | cat
Có phải tất cả đều tương đương và chia sẻ cùng tên? Có phải tất cả đều có chung đặc tính?
POSIX có định nghĩa này :
Một môi trường thực thi shell bao gồm ....
Nhưng đoạn cuối của liên kết trên có điều này:
Một môi trường lớp con sẽ được tạo như một bản sao của môi trường shell, ngoại trừ các bẫy tín hiệu không bị bỏ qua sẽ được đặt thành hành động mặc định.
Và đặc biệt:
Thay thế lệnh, các lệnh được nhóm với dấu ngoặc đơn và danh sách không đồng bộ sẽ được thực thi trong môi trường lớp con. Ngoài ra, mỗi lệnh của một đường ống đa lệnh nằm trong môi trường mạng con; ....
Các sh -c 'echo "Hello"'
không được bao gồm ở đó, mà nên được gọi là một subshell cũng?