Terminal penceresinden geçen bir İşleyici inşa etmeye çalışmak ve daha sonra karışık sonuçlarla karşılaştığım bir betiğin kimliğini çağırıyor ve daha temiz bir yol olup olmadığını merak ediyorum window 1
İşleyici:
on termHandler()
set activeTerminal to ""
if application "Terminal" is running then
tell application "Terminal"
if not (exists window 1) and not busy of window 1 then
activate
tell application "Terminal" to do script "echo snow" in window 1
else
tell application "Terminal" to do script "date" in window 1
set activeTerminal to window 1
return activeTerminal
end if
do script "echo foo"
activate
set activeTerminal to window 1
return activeTerminal
end tell
else
tell application "Terminal"
activate
do script "echo bar" in window 1
set activeTerminal to window 1
return activeTerminal
end tell
end if
end termHandler
Okuduğum ve araştırdığım her şey:
- Geçerli alanda YENİ bir terminal penceresi açmak için Applescript
- Terminali AppleScript ile aç
- Belirli Terminal Stili Pencerelerini açmak için Applescript
- Komut dosyası iki terminal penceresi açar
- Applescript ile komut ve dizgelerin Terminal.app'a gönderilmesi
AppleScript ve Terminal'in geçinemediğini öne sürüyor. Şu anki işletim sistemim Sierra. Bunu yazıyorum ama bu senaryoyu kullanacak Yosemite'i çalıştırdım. Buradaki son hedefim, belirli bir alanda bir Terminal penceresi tanımlamak ve biraz ateşlemek, do script
ancak bunu yapmakta bir sorunum var gibi görünüyor. Terminal çalışıyorsa, yeni bir pencere oluşturmak değil tanımlamak için daha kolay bir yolu var mı ve iade çalışıyorsa window 1
bir değişken olarak bu yüzden geçebilir do script
?
reopen
daha sonra olduğu window 1
bu senaryoda bulunmaktadır. Düşünecek sadece bazı noktalar.
window
, daha sonraif not (exists window 1) and not busy of window 1 then
başarısız olur ve bir kodlanmış değil hata işleyicisi bu senaryo için. Olmadığına bakmak diğer konu olduğu Terminali ise açık ve olmadanwindow
, daha sonraactivate
getiriyor Terminali ileriye ancak yeni yaratmazwindow
. Bir sonraki yorumda devam ...