Bagaimana cara menggunakan osascript untuk membuka Aplikasi Terminal di jendela baru dan memastikan itu ada di atas semua jendela lain?


3

Saya menemukan cara untuk membuka Terminal.app sangat berguna sebagai:

osascript -e \'tell application "Terminal" to do script "cd myfolder && ./something.sh param1"\'

Jika dijalankan dari jendela terminal maka semuanya baik-baik saja - setidaknya untuk setiap kasus yang saya uji. Bagaimana saya menjalankan perintah ini dari server Node.js karena hanya itu saya dapat memicu skrip di jendela terminal. Tapi ini masalahnya: ketika dijalankan, jendela Terminal ada di belakang Browser Chrome saya.

Bagaimana jendela ini bisa diatur di atas? Saya perhatikan bahwa jendela itu pasti berada di atas jendela Terminal lainnya tetapi bagaimana cara mengaturnya di atas semua jendela lainnya?

Misalnya, jendela di bawah Chrome dan sangat sulit untuk dilihat:

enter image description here

Jawaban:


5

Mengaktifkan

Gunakan perintah AppleScript mengaktifkan untuk membawa aplikasi Terminal.app ke depan :

tell application "Terminal"
    activate
end tell

Menggunakan osascript ini menjadi:

osascript -e 'tell application "Terminal" to activate'

Apakah mungkin melakukan itu dalam satu baris? Karena saya harus memicu ini dalam fungsi node.js.
AGamePlayer

Saya telah menambahkan osascript setara.
Graham Miln

osascript -e 'tell application "Terminal" to activate and to do script "cd myfolder && ./something.sh param1"' Apakah ini benar?
AGamePlayer

1
Solusi paling sederhana adalah menjalankan osascript dua kali dari JavaScript. Sekali untuk memulai skrip Anda dan lagi untuk membawa Terminal.app ke depan.
Graham Miln

1
Alternatif untuk berlari osascript dua kali menjalankannya sekali dengan 2 -e perintah, seperti: osascript -e 'tell application "Terminal" to activate' -e 'tell application "Terminal" to do script "..."'
Hugues M.
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.