AppleScript를 사용하여 자동화하거나 걱정을 줄이는 방법

간단한 AppleScript 명령을 작성하여 지연 방지


얼마 전에 나는 비행기를 타고 스페인에서 영국으로 날아와 업무 회의에 참가했다. 내가 정식으로 출장을 갔기 때문에 나는 전체 비행 과정에서 몇 가지 일을 열심히 완성하고 필요한 재료를 미리 준비하기로 결정했다.비행기에 올라 커피 한 잔을 주문하고 시작했어요.몇 번이나 브라우저에 상관없는 내용을 입력하려던 참이었는데, 비행기에서 오프라인 상태였던 기억이 나서 다시 일하러 갔다.비행기가 매우 빨리 지나가서 나는 갑자기 영국에 왔다.도착했을 때, 나는 내가 이미 임무를 완수했고, 심지어는 많은 것을 배웠다는 것을 놀랍게도 깨달았다. 왜냐하면 나는 더 많은 실험을 할 시간이 있기 때문이다.나는 이것이 내가 그렇게 신경을 쓰지 않아서 인터넷에서 물건을 검색할 수 없기 때문이라고 생각한다. 그리고 나로 하여금 다른 사람을 흥분시키는 화제를 찾게 했다. 간단히 말해서 나의 주의력을 완전히 분산시켰다.나는 더 집중적인 업무 방식을 찾고 현실 생활에 더 많은 시간을 투자할 수 있다는 것이 정말 놀랍다고 생각한다.👪 🏕️ 🍺

이 강좌에 무엇이 필요합니까?


특히 만약 당신이 새로운 초보자라면 컴퓨터에 설치된 언어를 사용하는 것이 좋습니다. 그러면 어떤 설정도 하지 않고 시작할 수 있습니다.
Macintosh에서는 Bash 및 AppleScript가 자동으로 설치됩니다.만약 네가 이것들이 무엇인지 모르거나, 길에서 끊겼다면, 괜찮아.당신은 여기서 읽을 수 있습니다:
What is Bash Script?
Basics of AppleScript

우리는 무엇을 실현하고 싶습니까?


때때로, 당신의 기계에 중복된 임무가 있는데, 우리는 발을 사용하여 이 임무들을 간소화할 수 있습니다.이 경우, 이것은 잠시 마음을 놓고, 당신이 가장 좋아하는 프로그램을 열고, 전체 화면 모드로 설정하는 것입니다.
이 예에서는 AppleScript를 사용했습니다. AppleScript는 매우 좋고 읽기 쉽고 사용하기 쉬우며 bash 스크립트를 쉽게 실행할 수 있기 때문입니다.macgyver 스크립트를 신속하게 작성하고 기계와의 상호작용, 자동화, 시간에 따라 조정하기 쉬운 정도에 흥분할 수 있어서 기쁩니다.

자동화된 스크립트 작성의 즐거움

대본부터.


'focus.applescript'라는 코드 편집기에 파일을 만들고 다음 내용을 추가합니다.do shell script는 내장된 bash 스크립트를 실행하는 AppleScript 명령입니다.그런 다음 터미널에서 실행osascript focus.applescript하고 스크립트가 있는 폴더에서 명령을 실행합니다.첫 번째 행은 스크립트를 실행하는 애플리케이션에 AppleScript를 사용하도록 알려줍니다.
!/usr/bin/osascript

do shell script "networksetup -setairportpower en0 off"
Wifi를 사용하지 않는 간단한 일을 하는 것을 볼 수 있을 것이다.아이콘이 회색으로 변하기 때문에 메뉴 표시줄에서 쉽게 확인할 수 있습니다.

물론 수동으로 열 수 있지만, 이 강좌를 위해서, 스크립트의 기능은 쉽게 확인할 수 있기 때문에 매우 좋다.이제 더 재미있어지고 30초 뒤에 와이파이를 다시 켤 때까지 딜레이를 늘려보자.
빠른 팁:
AppleScript에는 인라인 주석--, 블록 주석에는 인라인 주석(* do some magic 💥 *)을 추가할 수 있습니다.이것은 코드에 설명을 추가하는 데 매우 유용합니다. 나중에 코드를 보고 각 부분의 용도를 이해할 때 매우 유용할 것입니다.
-- Turn off wifi
do shell script "networksetup -setairportpower en0 off"

-- Wait a bit ⏱️
delay 30

-- Turn wifi back on
do shell script "networksetup -setairportpower en1 on"

논점 추가


예상한 바와 같이, 지금 매개 변수를 사용하자.우리는 원한다
WIFI를 종료해야 할 시간을 지정합니다.스크립트를 다음 코드 예시로 변경합니다.다음 스크립트를 실행하기 위해terminal 명령에 파라미터를 추가합니다. osacript focus.applescript 1 그리고 다음 코드 예시를 결합합니다.사용자 (여기는 사용자) 의 매개 변수는 접근 argv 을 통해 명령에서 가져옵니다. 이것은 매개 변수 값을 대표하며, 기본적으로 매개 변수 값을 사용하여 첫 번째 매개 변수를 가져옵니다.일단 파라미터를 도입하면, 반드시 앞의 명령을 '파라미터화 처리 프로그램' 에 포장해야 한다.이 부분 on run argvend run 은 같은 부분에 속하며, 중간에는 함수체입니다. 매개 변수가 사용되면 당신이 원하는 일입니다.스크립트를 실행할 때 기본적으로 '매개 변수 처리 프로그램' 을 호출합니다.우리는 secondsOfSilence 이라는 변수를 사용하여 매개 변수로 지연된 초를 계산할 수 있다.애플스크립트는 시간과 관련된 내용을 초 단위로 계산하기 때문에 필요하지만, '내 인터넷 끄기 10분' 이 아니라 '내 인터넷 끄기 600초' 라고 말하고 싶다.다음 예제 코드는 다음과 같습니다.

on run argv
    -- Now store time required to focus as seconds
    set secondsOfSilence to 60 * argv
    do shell script "networksetup -setairportpower en1 off"
    delay secondsOfSilence
    do shell script "networksetup -setairportpower en1 on"
end run

빠른 팁:
어떤 물건의 가치를 확신하지 못하면 개발 과정에서 꼼꼼하게 검사해야 할 때 한 줄say "The value of" & secondsOfSilence을 추가하는 것이 매우 유용하다.너의 기계는 큰 소리로 수치를 읽을 것이다.

스크립트에 매개 변수 추가


다음은 우리가 일반적으로 사용하고 관심을 가지고자 하는 특정한 프로그램을 열기 위해 명령에 부분을 추가합니다.두 번째 인자 argv 를 보내면 서로 다른 방식으로 접근해야 하는 값 목록이기 때문에 이것은 매우 흥미롭다.item n of argv에서 우리는 매개 변수 목록의 모든 요소를 얻었고 이 예에서 우리는 그것을 변수에 다시 저장했다.tell는 AppleScript의 내장 명령으로 원하는 것을 둘러싼 작업을 수행하는 데 사용되며, 이 예activate에서 프로그램을 시작하여 앞쪽에 놓고 끝 표시end tell로 끝냅니다.
    set yourFavouriteApp to item 2 of argv

    -- Open an app you would like to work with and focus on
    tell application yourFavouriteApp

            activate

    end tell
이제 터미널에서 스크립트를 시도할 때 다른 인자를 지정할 수 있습니다. osascript focus.applescript 1 "TextEdit"이곳의 '텍스트 편집' 은 단지 하나의 예일 뿐입니다. 이것은 당신이 좋아하는 모든 응용 프로그램일 수 있습니다.정확한 맞춤법은 매우 중요하다. 이것은 dock의 프로그램 이름과 같아야 한다.

현재 실행 중인 프로그램의 설정 변경


마지막으로, 가장 좋아하는 프로그램을 전체 화면 모드로 설정하는 마지막 단계를 추가했습니다.명령을 쉽게 네스트할 수 있습니다tell.프로그램을 활성화하면 3초의 지연을 늘려서 시작할 수 있도록 하고, 내부 '시스템 이벤트' 프로그램으로 컴퓨터의 프로세스를 관리해서 관심 있는 프로그램과 속성 'AXFullScreen'을true로 찾습니다.
빠른 알림: AppleScript에서 사용할 수 있는 대부분의 응용 프로그램을 보여 줍니다. tell application "System Events" to get name of (processes where background only is false)

    -- Open an app you would like to work with and focus on
    tell application yourFavouriteApp

            activate

            delay 3

            tell application "System Events" to tell process yourFavouriteApp

                    -- Set app of interest to fullscreen
                    set value of attribute "AXFullScreen" of window 1 to true

            end tell

    end tell
이제 우리가 수행한 단계를 다시 한 번 요약해 보겠습니다.

이것은 아래의 마지막 각본이다.마음대로 평론하거나 어떤 문제를 제기하세요.
#!/usr/bin/osascript

on run argv

    set minutes to item 1 of argv
    set yourFavouriteApp to item 2 of argv

    -- Turn off wifi
    set secondsOfSilence to 60 * minutes
    do shell script "networksetup -setairportpower en0 off"

    -- Open App
    tell application yourFavouriteApp

            activate

            delay 3

            tell application "System Events" to tell process yourFavouriteApp

                    -- Set App of interest to fullscreen
                    set value of attribute "AXFullScreen" of window 1 to true

            end tell

    end tell

    -- After waiting turn wifi back on
    delay secondsOfSilence
    do shell script "networksetup -setairportpower en1 on"

end run
이제 푹 쉬어라, 너의 일을 자랑스럽게 여겨라!사용자 정의 명령을 작성한 것을 축하합니다.

좋은 웹페이지 즐겨찾기