AppleScript로 현재 공간에서 터미널을 제어하는 ​​방법은 무엇입니까?


1

터미널 창을 통과하는 Handler를 만드는 작업은 스크립트의 ID를 호출하여 혼합 된 결과를 얻었습니다. 더 깨끗한 방법이 있다면 궁금합니다. window 1

핸들러 :

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

내가 읽고 읽은 모든 것 :

AppleScript와 터미널이 잘 맞지 않는다고 제안합니다. 현재 사용중인 OS는 Sierra입니다.이 글은 쓰고 있지만 다른 스크립트는 Yosemite를 사용하여이 스크립트를 사용합니다. 나의 최종 목표는 특정 공간에서 터미널 창을 식별하고 일부를 시작하는 것입니다. do script 하지만 그렇게하는 데 문제가있는 것 같습니다. 터미널이 실행되고 있는지 확인하고, 새 창을 만들지 않고, 실행중인 경우 window 1 변수로 전달할 수 있습니다. do script?


이 의견은 공백 그러나, 여기 박쥐에서 벗어나는 문제가 있습니다. 만약 단말기 ~이다. 열다 그리고없이 window, 그 다음에 if not (exists window 1) and not busy of window 1 then 실패 할 것이고 당신은 오류 처리기 그 시나리오를 위해. 내가 보는 또 다른 문제는 단말기 ~이다. 열다 그리고없이 window, 그 다음에 activate 가져다 준다 단말기 앞으로 나아가지만 새로운 것은 만들지 않는다. window. 다음 댓글에서 계속 ...
user3439894

프로그래밍 방식으로 단말기 도크 타일 ~에 , 또는 사용 시스템 이벤트 ⌘N 또는 말하다 단말기 reopen 그러고 나서 window 1 이 시나리오에 존재합니다. 생각할 점이 몇 가지 있습니다.
user3439894

왜 그걸 대답으로 남겨 두지 않겠습니까? 실수가 있다면 나는 최종 목표에 대한보다 나은 접근 방법입니다.
ʀ2ᴅ2

내가 Spaces를 가지고있는 이슈들을 다루지 않기 때문에 대답으로 게시하지 않았다.
user3439894

답변:


-1

실제로 터미널 창에 입력해야합니까, 아니면 실제로 작동하는 것처럼 보입니까? 당신이 알고 있는지 잘 모르겠지만이 "do shell script"명령을 사용하여 AppleScript에서 쉘 스크립트를 직접 실행할 수 있습니다. 예로서:

do shell script "echo snow"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.