Saya percaya bahwa file .sh "dimiliki" oleh Xcode secara default, jadi jika Anda mengklik dua kali pada salah satu dari mereka, itu akan terbuka di Xcode alih-alih mengeksekusi.
File .command dan .tool dimiliki oleh Terminal secara default, jadi jika Anda mengklik dua kali salah satunya, itu akan terbuka dan dieksekusi di Terminal.
Saya tidak mengetahui adanya perbedaan lain di antara mereka.
Saya juga telah menggunakan .sh untuk skrip shell, tetapi saya baru-baru ini berhenti karena saya mulai menulis skrip shell saya di Zsh bukannya sh, dan itu membingungkan untuk mencoba mengingat apakah perintah tertentu berakhir dengan .sh atau .zsh, jadi saya akhirnya menempatkan semuanya di ~ / bin / dan memastikan semuanya dapat dieksekusi, dan jangan gunakan ekstensi file sama sekali.