Jawaban:
Pertama di terminal membuat skrip dapat dieksekusi dengan mengetik:
chmod a+x (yourscriptname)Kemudian, di Finder, klik kanan file Anda dan pilih "Open with" dan kemudian "Other ...".
Di sini Anda memilih aplikasi yang Anda inginkan untuk mengeksekusi file, dalam hal ini adalah Terminal. Untuk dapat memilih terminal, Anda harus beralih dari "Aplikasi yang Dianjurkan" ke "Semua Aplikasi". (Aplikasi Terminal.app dapat ditemukan di folder Utilities)
CATATAN bahwa kecuali jika Anda tidak ingin mengaitkan semua file dengan ekstensi ini untuk dijalankan di terminal Anda tidak harus diperiksa "Selalu Buka Dengan".
.commandadalah secara default executable dari Finder, tanpa perlu untuk menginstruksikan Finder cara membukanya.
.commandekstensi file.
Sudahkah Anda mencoba menggunakan .commandekstensi nama file?
chmod +x) tetapi .commandekstensi sudah ditautkan dengan Terminal. Solusi hebat, terima kasih
Pada OSX 10.10 (Yosemite) dan sejak setidaknya OS X 10.8 (Mountain Lion) , perilaku adalah sebagai berikut ketika Anda membuka (klik dua kali) skrip yang dapat dieksekusi dari Finder :
.command :
Preferences... > ProfilesAnda dapat memilih untuk secara otomatis menutup jendela ketika skrip keluar.cd -- "$(dirname "$BASH_SOURCE")" tepat setelah garis shebangcd -- "$(dirname "$0")",.chmod +x <script>di Terminal; jika tidak, Anda akan melihat gejala berikut:.command: Finder menampilkan pesan kesalahan menyesatkan yang menyarankan masalah dapat diperbaiki melalui File > Get Info, yang tidak benar - gunakan chmod +xmetode yang disarankan di atas.#!/bin/bash): perilaku seolah-olah sufiksnya .sh- lihat di bawah..sh , dapat dieksekusi atau tidak:
TextEdit.appatau, jika terpasang, dengan Xcode.app..scpt atau .applescript(bahkan jika itu sendiri ditandai sebagai executable, yang biasanya tidak terjadi):
[Apple]Script Editor[1] Dapat dieksekusi berarti: skrip dengan set bit izin yang dapat dieksekusi dan pengguna panggilan - relatif terhadap kepemilikan file - karena itu berpotensi diizinkan untuk mengeksekusinya.
Jika Anda menggunakan chmod a+xuntuk mengatur semua bit izin (yang khas), siapa pun dapat memohonnya (dengan asumsi mereka juga diizinkan untuk membaca file berdasarkan bit izin baca dan kepemilikan file).
osascriptyang dapat Anda sertakan di dalam .commandfile alih-alih mengacaukan profil secara manual.
osascript -e '...'perintah di akhir skrip seseorang? Apa perintah khusus, dan apakah itu memastikan bahwa tab kanan ditutup bahkan ketika skrip tidak berjalan di tab paling depan?
osascript -e 'tell application "Terminal" to close front window' > /dev/null 2>&1 &... Mungkin tidak berfungsi di setiap skenario, meskipun pengalihan di end benar-benar kuncinya - naskah osas dapat diadaptasi dengan mudah (mis. jendela mungkin perlu diubah ke tab jika itu adalah perilaku default terminal Anda, dll.).
.commandfile skrip dijalankan meskipun pengaturan profil?
bashskrip, tambahkan read -p 'Press Return to close this window.'sebagai pernyataan terakhir.
Atau, Anda dapat membuat aplikasi Mac OS X biasa dari skrip menggunakan Platypus
Cara mudah adalah mengubah ekstensi ke .commandatau tanpa ekstensi.
Tapi itu akan membuka Terminal, dan Anda harus menutupnya. Jika Anda tidak ingin melihat output apa pun, Anda dapat menggunakan Automator untuk membuat Aplikasi Mac yang dapat Anda klik dua kali, tambahkan ke dock, dll.
AutomatoraplikasiRuntombol di sudut kanan atas untuk mengujinya.File > Save untuk membuat Aplikasi.Tidak perlu menggunakan aplikasi pihak ketiga seperti Platypus.
Cukup buat Apple Script dengan Script Editor dan gunakan perintah do shell script "shell commands"untuk panggilan perintah langsung atau file skrip yang dapat dieksekusi, jaga file skrip yang dapat diedit tetap aman di suatu tempat kemudian ekspor untuk membuat skrip Aplikasi. skrip aplikasi dapat diluncurkan dengan mengklik dua kali atau memilih di folder bar.
Anda juga dapat mengatur default berdasarkan ekstensi file menggunakan RCDefaultApp:
http://www.rubicode.com/Software/RCDefaultApp/
berpotensi Anda dapat mengatur .sh untuk dibuka di iTerm / Terminal dll. itu akan membutuhkan izin eksekusi pengguna, misalnya
chmod u+x filename.sh