Câu trả lời ngắn gọn là không, chúng không tương thích 100%.
Nhưng hầu hết các shell đều khá gần với cơ bản, vì vậy bạn sẽ hiếm khi gặp phải sự không nhất quán. Trong thực tế, hầu hết các shell khác nhau không nhiều bởi cú pháp được thêm vào, nhưng bởi một số tính năng bổ sung như hoàn thành tab và tương tự.
Ngoài ra, chính xác dash
là một hậu duệ của ash
- hoặc cổng từ BSD sang Linux, chính xác. Và tất cả trong số họ nên là con cháu hoặc thực hiện khác nhau sh
. Trong thực tế, sh
là trên hầu hết các hệ thống chỉ là một liên kết tượng trưng đến bash
, dash
hay cái gì khác. Vấn đề là tuân thủ POSIX - và khi bạn viết tập lệnh theo tiêu chuẩn, bạn sẽ không gặp vấn đề.
Sự khác biệt giữa các shell đó là ở tối ưu hóa và hiệu suất. Chúng ít giàu tính năng hơn bash
, nhưng chúng là những vỏ hoàn toàn hợp pháp. Bash là giàu tính năng cho công việc tương tác, nhưng sử dụng nhiều bộ nhớ hơn, ví dụ.