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".
.command
adalah secara default executable dari Finder, tanpa perlu untuk menginstruksikan Finder cara membukanya.
.command
ekstensi file.
Sudahkah Anda mencoba menggunakan .command
ekstensi nama file?
chmod +x
) tetapi .command
ekstensi 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... > Profiles
Anda 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 +x
metode yang disarankan di atas.#!/bin/bash
): perilaku seolah-olah sufiksnya .sh
- lihat di bawah..sh
, dapat dieksekusi atau tidak:
TextEdit.app
atau, 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+x
untuk 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).
osascript
yang dapat Anda sertakan di dalam .command
file 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.).
.command
file skrip dijalankan meskipun pengaturan profil?
bash
skrip, 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 .command
atau 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.
Automator
aplikasiRun
tombol 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