Apa perbedaan antara ekstensi file .command, .tool, dan .sh?

22

Saya melihat beberapa pertanyaan tentang mengeksekusi skrip baris perintah? Saya melihat bahwa ekstensi .command dan .tool disebutkan. Saya selalu menggunakan .sh. Apa perbedaan antara skrip yang berbeda ini? Apakah beberapa ekstensi mengizinkan perintah yang berbeda?

daviesgeek
sumber

Jawaban:

15
  • .command - (Skrip shell Terminal) Secara khusus mengaitkan skrip shell dengan Terminal. Kadang-kadang disebut sebagai "File Terminal."
  • .tool - (skrip shell Terminal) Sama seperti ekstensi file ".command".
  • .sh - (Shell Script) Script shell dasar yang dikaitkan dengan Xcode 4.1.

Secara pemrograman, saya yakin perbedaan antara dua yang pertama (.command vs .tool) halus, sedangkan yang ketiga pada dasarnya sederhana, skrip shell default. Dan apakah sebenarnya mengaitkan dengan Xcode 4.1.

masukkan deskripsi gambar di sini


sumber
5
"... Aku yakin perbedaan antara dua yang pertama (. Perintah vs. Alat) halus ..." Faktanya, perbedaannya tidak ada :-) Terminal memperlakukan mereka secara identik. Dua ekstensi nama file memetakan ke jenis file yang sama persis di Terminal. Terminal dan Terminal tidak berusaha mendeteksi ekstensi mana yang disediakan. Selain itu, terlepas dari kenyataan bahwa memiliki ekstensi yang berbeda berarti mereka dapat memiliki aplikasi standar yang berbeda, isi ketiga jenis file ini adalah sama. Mereka semua hanyalah skrip shell.
Chris Page
2

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.

TJ Luoma
sumber
Sebenarnya mereka tidak terbuka di Xcode. Dan saya sudah menginstal Xcode pada mesin saya.
daviesgeek
1
File .sh dapat dibuka di Xcode (klik kontrol »" buka dengan "akan menampilkan Xcode sebagai opsi), tetapi aplikasi yang dibuka akan bergantung pada aplikasi mana yang pertama kali diinstal dan" mengklaim "ekstensi. Jika aplikasi lain diinstal sebelum Xcode dan mengklaim .sh, itu tidak akan ditampilkan sebagai pembukaan dengan Xcode.
TJ Luoma
1
Anda benar: Selain fakta bahwa ekstensi nama file yang berbeda memungkinkannya untuk memiliki aplikasi standar yang berbeda, konten dan penanganan file-file ini adalah sama. Itu semua hanyalah file skrip shell.
Chris Page