Sepertinya ketika Terminal tidak terbuka, maka tell application Terminal
buka Terminal dengan jendela pertama dan do script
buka jendela lain (karena do script
seharusnya membuka jendela baru).
Solusi parsial adalah do script ... in window 1
, yang memaksa untuk menjalankan skrip di jendela yang baru dibuka, tetapi ketika Terminal digunakan sebelumnya, ini akan membajak jendela yang ada (dan mungkin konteks yang tidak sesuai).
Script berikut membantu saya:
if application "Terminal" is running then
tell application "Terminal"
# do script without "in window" will open a new window
do script "echo HELLO"
activate
end tell
else
tell application "Terminal"
# window 1 is guaranteed to be recently opened window
do script "echo HELLO" in window 1
activate
end tell
end if
(Saya mendapat inspirasi dari proposal adayzdone , tetapi itu tidak berhasil untuk saya (di El Capitan). Sepertinya setelah tell application "Terminal"
kondisi not (exists window 1)
tidak pernah berlaku.)
do script "myscript"
?