Tôi tin rằng các tệp .sh được "sở hữu" theo Xcode theo mặc định, vì vậy nếu bạn nhấp đúp vào một trong số chúng, nó sẽ mở trong Xcode thay vì thực thi.
Các tệp .command và .tool được sở hữu bởi Terminal theo mặc định, vì vậy nếu bạn nhấp đúp vào một trong số chúng, nó sẽ mở và thực thi trong Terminal.
Tôi không nhận ra bất kỳ sự khác biệt nào khác giữa chúng.
Tôi cũng đã sử dụng .sh cho các kịch bản shell, nhưng gần đây tôi đã dừng lại vì tôi đã bắt đầu viết các kịch bản shell của mình bằng Zsh thay vì sh, và thật khó hiểu khi cố gắng nhớ liệu một lệnh nào đó đã kết thúc bằng .sh hay .zsh, vì vậy cuối cùng tôi chỉ cần đặt tất cả chúng vào ~ / bin / và đảm bảo rằng chúng có thể thực thi được và không sử dụng phần mở rộng tệp trên chúng.