Geçerli alandaki Terminal'i AppleScript ile nasıl kontrol edebilirim?


1

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:

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 scriptancak 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 1bir değişken olarak bu yüzden geçebilir do script?


Bu yorum, Spaces ile ilgili herhangi bir sorunu ele almıyor , ancak işte, yarasadan gördüğüm bir konu. Eğer Terminali ise açık ve olmadan window, daha sonra if not (exists window 1) and not busy of window 1 thenbaş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 olmadan window, daha sonra activategetiriyor Terminali ileriye ancak yeni yaratmaz window. Bir sonraki yorumda devam ...
user3439894 16

Programlı tıklamak zorunda ya Terminali dock Çini üzerine Dock'un veya kullanmak Sistem Olayları için ⌘N veya anlatmak Terminali için reopendaha sonra olduğu window 1bu senaryoda bulunmaktadır. Düşünecek sadece bazı noktalar.
user3439894

neden bunu cevap olarak bırakmıyorsun? Eğer bir hata varsa, son hedefe daha iyi bir yaklaşım için hepiniz varım.
ᴅ2ᴅ2

Cevap olarak göndermedim, çünkü Spaces ile ilgili sorunlarınızla ilgilenmiyor.
user3439894

Yanıtlar:


-1

Gerçekten bir terminal penceresine giriş yapmanıza gerek var mı, yoksa tam da sizin çalıştığınızı mı düşünüyorsunuz? Bunun farkında olup olmadığınızdan emin değilim, ancak bu "kabuk komutunu yap" komutunu kullanarak kabuk komut dosyalarını doğrudan bir AppleScript'ten çalıştırabilirsiniz. Örnek olarak:

do shell script "echo snow"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.