Saya memiliki skrip shell yang memiliki izin eksekusi pengguna pada OS X, tetapi ketika saya mengklik dua kali, skrip itu terbuka di editor teks. Bagaimana saya bisa menjalankannya dengan mengklik dua kali?
233
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?sumber
chmod +x
) tetapi.command
ekstensi sudah ditautkan dengan Terminal. Solusi hebat, terima kasihPada 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
:Namun, melalui Terminal,
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 melaluiFile > Get Info
, yang tidak benar - gunakanchmod +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, denganXcode.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).sumber
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, tambahkanread -p 'Press Return to close this window.'
sebagai pernyataan terakhir.Atau, Anda dapat membuat aplikasi Mac OS X biasa dari skrip menggunakan Platypus
sumber
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.sumber
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.sumber
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
sumber
chmod 774 filename
Catatan : File dengan nama 'nama file' yang memiliki skrip bash tidak memiliki ekstensi
sumber