Các tuyên bố trong câu hỏi của bạn là không chính xác. Solaris lên đến phiên bản 10 đang cung cấp vỏ Bourne thật như cũ /bin/sh
. Điều này được thực hiện để không phá vỡ tính tương thích với các tập lệnh cũ có thể thất bại với trình bao khác. Sự lựa chọn này là rất bực bội khác mặc dù.
Hầu hết nếu không phải tất cả các phiên bản Unix và Unix còn lại, kể cả Solaris 11, đều cung cấp lớp vỏ tương thích /bin/sh
POSIX vì POSIX bắt buộc sh
lệnh khởi chạy trình bao POSIX, không phải trình bao Bourne kế thừa không tuân thủ. /bin/sh
nói chung là :
ksh88
hoặc ksh93
trên các triển khai Unix thương mại
- một sửa đổi
bash
trên OS/X
(mặc dù trước đây zsh
)
- một
ash
hoặc pdksh
phái sinh trên khácBSDs
bash
hoặc dash
trên các bản phân phối Gnu / Linux.
Nó không nhất thiết phải là một liên kết nhưng có thể là một thực thi thực sự trên nhiều hệ thống, ngoại trừ Gnu / Linux.
Thật thú vị, mặc dù câu trả lời được nêu lên nhiều nhất cho câu hỏi của bạn, không phải là thiếu các tính năng khiến các nhà phát triển phân phối cài đặt một cái gì đó khác với vỏ Bourne kế thừa /bin/sh
mà là mong muốn được tuân thủ POSIX nhất có thể, nghĩa là hành xử như một Unix giống như hệ điều hành. Thực tế, vỏ POSIX có nhiều tính năng hơn so với vỏ Bourne cũ chỉ là tác dụng phụ của mục tiêu tuân thủ tiêu chuẩn này.
Nó cũng là một thực tế một số vỏ, đáng chú ý bash
, hành xử khác nhau khi được gọi sh
, và điều này chủ yếu loại bỏ các tính năng từ vỏ, không phải cách khác.