애플스크립트
AppleScript패러다임 | 자연어 프로그래밍, 스크립팅 |
---|---|
개발자 | 애플 |
첫 등장 | 1993; | 전 (
안정적 해제 | 2.5 / 2014년 10월 16일;[1] 전 |
타이핑 규율 | 약하고 역동적인 |
OS | 시스템 7, Mac OS 8, Mac OS 9, MacOS |
면허증 | 독점적(APSL에 따라 사용 가능한 부품) |
파일 이름 확장명 | .scpt, .scptd, .scriptcript |
웹사이트 | https://developer.apple.com/applescript |
영향을 받은 | |
자연어, 하이퍼토크 |
AppleScript는 Apple Inc.에서 만든 스크립팅 언어로 스크립팅 가능한 Mac 애플리케이션에 대한 자동 제어를 용이하게 한다.시스템 7에 처음 도입된 이 제품은 현재 시스템 자동화 툴 패키지의 일부로 모든 버전의 MacOS에 포함되어 있다.[2][3]"AppleScript"라는 용어는 언어 자체, 언어로 작성된 개별 스크립트 또는 비공식적으로 언어의 기초가 되는 MacOS Open Script Architecture를 지칭할 수 있다.[2][3]
개요
애플스크립트는 애플 이벤트를 이용해 애플리케이션 간 통신(IAC)을 하기 위해 애플이 개발한 스크립팅 언어다.[2][3]AppleScript는 Apple 이벤트와 관련이 있지만 다르다.애플 이벤트는 반복 작업을 자동화하기 위해 다른 애플리케이션 간에 데이터를 교환하고 제어하도록 설계되었다.
애플스크립트는 애플 이벤트를 어플리케이션에 보내고 받을 뿐만 아니라 자체 처리 능력도 있다.애플스크립트는 기본적인 계산과 텍스트 처리를 할 수 있으며 확장 가능하여 언어에 새로운 기능을 추가하는 스크립팅 추가 기능을 사용할 수 있다.그러나 애플스크립트는 주로 애플리케이션과 프로세스의 기능에 의존하여 복잡한 작업을 처리한다.구조화된 명령어로서 AppleScript는 그 목적상 Unix shell, Microsoft Windows Script Host 또는 IBM REXX와 비교할 수 있지만,[citation needed] 세 가지 모두와 구별된다.매킨토시 애플리케이션이 주소 지정 가능한 개체와 운영의 "사전"을 출판한다는 사실은 이것의 기능에 필수적이다.
애플스크립트는 절차적 프로그래밍, 객체지향적 프로그래밍(특히 스크립트 오브젝트 구성에서), 자연어 프로그래밍 경향의 일부 요소를 구문에 가지고 있지만, 이러한 프로그래밍 패러다임 중 어느 것에도 엄격히 부합하지 않는다.[3]: xxvi
역사
1980년대 후반 애플은 회사 전체와 고전적인 Mac OS 운영체제 내에서 그리고 애플과 비애플 제품 간의 상호 프로세스 커뮤니케이션을 위해 하이퍼카드의 하이퍼토크 스크립팅 언어를 표준 언어로 사용하는 것을 고려했다.[4]하이퍼토크는 초보자가 하이퍼카드 스택을 프로그래밍하는 데 사용할 수 있다.애플 엔지니어들은 유사하지만 보다 객체 지향적인 스크립팅 언어가 어떤 애플리케이션에도 사용되도록 설계될 수 있다는 것을 인식했고, 애플스크립트 프로젝트는 매킨토시 전체를 현대화하기 위한 연구 노력의 일환으로 탄생했고 마침내 시스템 7의 일부가 되었다.[5]
AppleScript는 System 7.1.1(시스템 7 Pro, 시스템 7로의 첫 번째 주요 업그레이드)의 일부로 1993년 10월에 출시되었다.[5]QuarkXpres(ver. 3.2)는 AppleScript를 지원하는 최초의 주요 소프트웨어 애플리케이션 중 하나였다.이는 차례로 애플스크립트가 출판계와 압박계 내에서 널리 채택되어 복잡한 워크플로우를 묶는 결과를 낳았다.이것은 QuarkXpress와 다른 출판 어플리케이션이 마이크로소프트 윈도우에 포팅된 이후에도 출판과 압력에 있어서 매킨토시의 지배적인 위치를 유지하는 데 중요한 요소였다.
애플의 차세대 OS에서 애플스크립트의 미래에 대한 약간의 불확실성 이후, 맥 OS X(2002년경)와 코코아 프레임워크로의 이동은 애플스크립트의 유용성과 유연성을 크게 증가시켰다.코코아 애플리케이션은 애플리케이션 개발자들이 최소의 노력으로 애플리케이션에 대한 기본적인 스크립트 기능을 구현할 수 있도록 하며, 직접 스크립팅 가능한 애플리케이션의 수를 확대한다.동시에, Unix의 기초와 AppleScript의 명령어를 직접 실행할 수 있는 기능으로의 전환,do shell script
명령,[6] AppleScripts가 운영 체제 자체에 대한 훨씬 더 큰 제어를 허용했다.[3]: 863 Xcode의 일부로 Mac OS X 10.2와 함께 출시된 AppleScript Studio와 이후 Mac OS X 10.6에서 출시된 AppleScriptObjC 프레임워크는 사용자가 AppleScript를 사용하여 코코아 애플리케이션을 만들 수 있도록 했다.[3]: 969
맥월드는 2006년 기사에서 애플스크립트를 애플이 현재까지 가장 중요한 30개 제품 순위에 포함시켜 17위에 올랐다.[7]
맥월드를 위한 2013년 기사에서, 노련한 맥 소프트웨어 개발자 겸 해설가 존 그루버는 "이론적으로 애플스크립트가 훨씬 더 나을 수 있다; 하지만 실제로 우리가 가진 것 중 가장 좋은 것이다."라고 언급함으로써, "애플스크립트의 가능성이 희박하지 않은 지속성"에 대한 그의 성찰을 마무리 지었다.틴케일러와 고급 사용자들을 위한 iOS에 비해 맥이 가진 장점을 예시한다.[8]
2016년 10월 애플스크립트의 오랜 제품 매니저 겸 자동화 전도사 살 소호이안은 "업무상의 이유로" 직위가 없어지면서 애플을 떠났다.[9]존 그루버, 앤디 이나트코 등 맥 커뮤니티의 베테랑들은 개발자 커뮤니티와 프로 유저에 대한 애플의 의지에 의문을 제기하며 대체로 우려의 반응을 보였다.[10]크레이그 페더리히 애플 소프트웨어 엔지니어링 수석 부사장은 e메일을 통해 "우리는 맥OS의 위대한 자동화 기술에 대한 지원을 지속할 용의가 있다"고 답변했지만 맥 옵서버의 제프 가멧은 애플 자동화의 미래에 대한 의구심을 해소하는 데 별 도움이 되지 않는다고 말했다.별개의[11]당분간 AppleScript는 Automator, 바로 가기, 서비스 및 셸 스크립팅과 함께 MacOS 자동화 기술의 한 구성 요소로 남아 있다.
기본개념
AppleScript는 접근 가능한 최종 사용자 스크립팅 언어로 사용되도록 설계되었으며, 사용자에게 응용프로그램을 제어하고 데이터와 문서에 액세스하고 수정하는 지능형 메커니즘을 제공하였다.AppleScript는 웹 서비스의 세계에서 XML-RPC를 통해 XPath 쿼리를 보내는 것과 거의 유사하게 Macintosh 운영 체제가 애플리케이션에 정보를 보내기 위해 사용하는 표준화된 데이터 형식의 집합인 Apple 이벤트를 사용한다.[3]: xxvi 애플 이벤트는 스크립트를 여러 애플리케이션과 동시에 작업할 수 있게 해 주고, 그 사이에 데이터를 전달해 복잡한 작업이 사람의 상호작용 없이 이루어질 수 있도록 한다.[2]예를 들어 간단한 웹 갤러리를 만드는 AppleScript는 다음을 수행할 수 있다.
- 사진 편집 응용 프로그램에서 사진을 여십시오(해당 응용 프로그램에서 Open File Apple 이벤트를 전송함).
- 사진 편집 응용 프로그램에서 이미지를 조작하도록 지시(예: 해상도 감소, 테두리 추가, 사진 크레딧 추가)
- 변경된 이미지를 다른 폴더의 파일에 저장하려면 사진 편집 응용 프로그램에 해당 응용 프로그램을 Save(저장) 및/또는 Close Apple(애플 닫기) 이벤트를 보내십시오.
- 다른 Apple 이벤트를 통해 텍스트 편집기 또는 웹 편집기 응용 프로그램에 새 파일 경로 보내기
- 그 편집기 어플리케이션에 사진 링크를 HTML 파일에 쓰라고 해.
- 전체 이미지 폴더(수백 개 또는 심지어 수천 개의 사진)에 대해 위의 단계를 반복하십시오.
- 수정된 사진의 HTML 파일 및 폴더를 웹 사이트에 업로드하거나, 그래픽 FTP 클라이언트로 Apple 이벤트를 전송하거나, 내장된 AppleScript 명령을 사용하거나, Unix FTP 유틸리티로 Apple 이벤트를 전송하십시오.
사용자의 경우, 다수의 어플리케이션에서 수백, 수천의 스텝이 스크립트를 실행하는 단 하나의 동작으로 줄어들었고, 작업은 훨씬 짧은 시간 내에, 그리고 무작위적인 인간 오류의 가능성 없이 이루어진다.대형 복합 스크립트는 한 번만 실행되도록 개발될 수 있는 반면, 다른 스크립트는 계속해서 사용된다.
응용 프로그램의 스크립트 가능 요소는 응용 프로그램의 스크립팅 사전(응용 프로그램의 일부로 배포됨)에서 볼 수 있으며, 이는 모든 스크립트 편집기에서 볼 수 있다.원소들은 그들 사이의 느슨한 기능적 관계에 따라 일반적으로 스위트룸으로 분류된다.어떤 스위트룸에도 두 가지 기본적인 요소가 있다: 클래스와 명령이다.
- 클래스는 스크립팅 가능한 객체(예: 텍스트 편집 애플리케이션에는 창, 문서 및 텍스트에 대한 클래스가 거의 확실히 있음)이며, 이러한 클래스는 변경할 수 있는 속성(창 크기, 문서 배경색, 텍스트 글꼴 크기 등)을 가지며, 다른 클래스(창에는 하나 이상의 문서, 문서가 포함됨)를 포함할 수 있다.텍스트는 텍스트를 포함하며, 텍스트 개체는 문단과 단어와 문자를 포함한다.
- 이와는 대조적으로 명령은 스크립팅 가능한 개체에 부여할 수 있는 지시사항이다.AppleScript 블록의 일반적인 형식은 스크립트 가능한 객체가 명령을 실행하도록 지시하는 것이다.
모든 스크립팅 가능한 애플리케이션은 대개 Standard Suite라고 불리는 몇 가지 기본 명령과 개체를 공유하며, 이 명령들은 애플리케이션 자체의 스크립트 가능한 속성을 제공하는 기본 애플리케이션 개체뿐만 아니라 파일을 열거나, 닫거나, 저장하거나, 인쇄하거나, 종료하거나, 데이터를 변수에 설정하도록 한다.많은 애플리케이션은 애플리케이션 자체가 수행할 수 있는 작업을 수행할 수 있는 수많은 제품군을 가지고 있다.예외적인 경우, 애플리케이션은 자체 스크립팅 사전을 포함하는 플러그인을 지원할 수 있다.
애플스크립트는 사용자 동작을 기록함으로써 직관적으로 스크립트를 작성할 수 있는 기능으로 설계되었다.이러한 AppleScript 기록성은 Apple 이벤트와 AppleScript 기록을 지원해야 하며,[12] Finder가 AppleScript 기록을 지원하므로 참조에 유용할 수 있다.AppleScript Editor(스크립트 편집기)가 열려 있고 Record(기록) 버튼을 클릭하면 기록 가능한 앱에 대한 사용자 작업이 동등한 AppleScript 명령으로 변환되어 Script Editor(스크립트 편집기) 창에 출력된다.결과 스크립트를 저장했다가 다시 실행하여 원래 작업을 복제하거나, 보다 일반적으로 유용하도록 수정할 수 있다.
평.
코멘트는 여러 가지 방법으로 할 수 있다.한 줄 코멘트는 하이픈 2개로 시작할 수 있다.--. Mac OS X Leopard에서 처음 출시된 AppleScript 2.0에서는 숫자 기호(#)로 시작할 수도 있다.이를 통해 자체 포함 AppleScript 스크립트를 쉬방 라인으로 시작하는 실행 가능한 텍스트 파일로 저장할 수 있다. #!/usr/bin/osascript
예:
--이것은 한 줄 코멘트 입니다. # 이것도! (Mac OS X Leopard 이상에서)
여러 줄을 차지하는 코멘트의 경우 애플스크립트가 안에 별표가 있는 괄호를 사용한다.예:
(* 이것은 a이다. 다중의 선을 긋다 코멘트 *)
안녕, 세상아!
AppleScript에서 전통적인 "Hello, World!" 프로그램은 다음과 같은 다양한 형태로 작성될 수 있다.
표시 대화상자 "안녕, 세상!" - "확인" 및 "취소" 단추가 있는 모달 창 - 또는 경계심을 나타내다. "안녕, 세상!" -- 단일 "확인" 버튼과 경고를 표시하는 앱을 나타내는 아이콘이 있는 모달 창 - 또는 라고 말하다 "안녕, 세상!" -- 합성된 컴퓨터 음성을 사용한 오디오 메시지
AppleScript에는 대화 상자, 알림 및 선택 목록 등 몇 가지 사용자 인터페이스 옵션이 있다.(문자 ¬, 타이핑으로 제작)⌥ Option+return 스크립트 편집기에서 여러 줄에 걸쳐 단일 문장의 연속성을 나타낸다.)
-- 대화 상자 세트 대화 상자응답 로 표시 대화상자 "다이얼로그 텍스트 ¬ 체납 대답하다 "텍스트 응답" ¬ 숨은 대답하다 거짓의 ¬ 단추 {"스킵", "좋아", "취소"} ¬ 체납 단추를 채우다 "좋아" ¬ 취소하다 단추를 채우다 "스킵" ¬ 와 함께 칭호를 붙이다 "대화 창 제목" ¬ 와 함께 아이콘 주석을 달다 ¬ 부여 위로 다음에 15
-- 목록에서 선택 세트 selectedListItem 로 명단에서 고르다 {"A, "B", "3"} ¬ 와 함께 칭호를 붙이다 "목록 제목" ¬ 와 함께 즉석의 "프롬프트 텍스트" ¬ 체납 항목들 "B" ¬ 네 알겠습니다 단추를 채우다 이름을 붙이다 "보기 좋다!" ¬ 취소하다 단추를 채우다 이름을 붙이다 "아니, 다시 해 봐" ¬ 다중의 선발된 것 허용된 거짓의 ¬ 와 함께 텅 빈 선발 허용된
-- 경보 세트 ResultalertReply 로 경계심을 나타내다. "알림 텍스트" ¬ 로서 경고 ¬ 단추 {"스킵", "좋아", "취소"} ¬ 체납 단추를 채우다 2 ¬ 취소하다 단추를 채우다 1 ¬ 부여 위로 다음에 2
각 사용자 상호작용 방법은 클릭된 버튼, 선택한 항목 또는 추가 처리를 위해 입력한 텍스트 값을 반환할 수 있다.예를 들면 다음과 같다.
경계심을 나타내다. "안녕, 세상!" 단추 {"거의 사양", "행복하게 받아들이다"} 세트 앤서니 로 버튼이 돌아왔다 의 그 결과 만일 앤서니 이다 "행복하게 받아들이다" 그때 삐 5 다른 라고 말하다 "피플!" 종지부를 찍다 만일
자연어 은유
애플 이벤트는 어플리케이션으로 메시지를 보내는 방법인 반면, 애플스크립트는 애플 이벤트를 보내기 위해 고안된 특정한 언어다.초보자를 위한 손쉬운 사용의 목적에 맞추어, 그래픽 사용자 인터페이스가 데스크톱 은유에 설계되는 것처럼 AppleScript 언어도 자연언어 은유에 의해 설계된다.잘 쓰여진 애플스크립트는 누구나 읽고 이해할 수 있을 만큼 명확해야 하며, 쉽게 편집해야 한다.이 언어는 주로 하이퍼카드의 HyperTalk 언어에 기반을 두고 있으며, 카드와 스택의 HyperCard 세계뿐만 아니라 이론적으로 어떤 문서도 참조할 수 있다.이를 위해 AppleScript 팀은 특정 응용프로그램이 "알고 있는" 객체를 지정하는 AppleEvent Object Model(AEOM)을 도입했다.
애플스크립트 언어의 핵심은 명사와 동사의 역할을 하는 용어를 결합할 수 있는 용어로 사용하는 것이다.예를 들어, AppleScript는 페이지, 문서 또는 페이지 범위(예: printPage, printDocument, printRange)를 인쇄하는 데 다른 동사가 아니라 페이지, 문서 또는 페이지 범위와 같은 객체와 결합할 수 있는 단일 "인쇄" 동사를 사용한다.
인쇄하다 페이지를 매기다 1 인쇄하다 문서화하다 2 인쇄하다 페이지 1 스루 5 의 문서화하다 2
일반적으로 AEOM은 "문서" 또는 "문단"과 같은 여러 개체와 "삭제"와 "닫기"와 같은 해당 작업을 정의한다.이 시스템은 또한 사물의 속성을 참조하는 방법을 규정하기 때문에, 「좋은 날」이라는 문서의 제3항, 또는 「전면 창문의 마지막 단어의 색」을 참조할 수 있다.AEOM은 애플리케이션 사전을 사용하여 Apple 이벤트를 사람이 읽을 수 있는 용어와 연관시켜, 사람이 읽을 수 있는 AppleScript와 바이트코드 Apple 이벤트 간의 변환을 허용한다.프로그램의 어떤 요소가 스크립팅 가능한지 알아보기 위해 지원되는 응용 프로그램의 사전을 볼 수 있다. (Xcode 및 Script Editor 응용프로그램에서, 이것은 File → Open Dictionary 아래에 있다.)
AppleScript는 이러한 메시지의 대상이 되는 응용프로그램을 지정하기 위해 "tell" 구성을 사용한다.
고하다 신청 "마이크로소프트 워드" 그만두다 종지부를 찍다 고하다
또는 부정사를 사용하여 한 줄로 말할 수 있다.
고하다 신청 "마이크로소프트 워드" 로 그만두다
"Core Suite"의 이벤트(활성화, 열기, 다시 열기, 닫기, 인쇄 및 종료)의 경우 응용 프로그램이 Transitive 명령의 직접 개체로 제공될 수 있다.
그만두다 신청 "마이크로소프트 워드"
객체 계층의 개념은 중첩된 블록을 사용하여 표시할 수 있다.
고하다 신청 "쿼크X프레스" 고하다 문서화하다 1 고하다 페이지를 매기다 2 고하다 문자 메시지를 보내다 권투를 하다 1 세트 단어 5 로 "애플" 종지부를 찍다 고하다 종지부를 찍다 고하다 종지부를 찍다 고하다 종지부를 찍다 고하다
객체 계층의 개념은 또한 중첩된 전치사 구문을 사용하여 표현될 수 있다.
화소 7 의 배를 젓다 3 의 TIFF 이미지 "내 비트맵"
다른 프로그래밍 언어로 다음과 같이 순차적 메서드 호출로 표현될 수 있다.
겟티프("내 비트맵").겟로(3).겟픽셀(7);
AppleScript는 "첫 번째 단락"과 "첫 번째 단락"을 위한 구문을 포함하며, "첫 번째 단락"은 추기경 "한 번째 단락"을 포함한다.마찬가지로 숫자 자체를 텍스트 또는 숫자라고 할 수 있으며, "5", "5", "5", "5" 모두 지원되며, AppleScript에서 동의어다.또한 "the"라는 단어는 가독성을 높이기 위해 대본의 어느 곳에서나 합법적으로 사용될 수 있다: 그것은 대본의 기능성에 영향을 미치지 않는다.
스크립트의 예
페일 세이프 계산기:
고하다 신청 "파인더" -- 변수 설정 세트 제1회 로 반송된 문자 의 (표시 대화상자 "1차" 체납 대답하다 "여기 번호" 단추 {"계속"} 체납 단추를 채우다 1) 세트 더 투 로 반송된 문자 의 (표시 대화상자 "2차" 체납 대답하다 "여기 번호" 단추 {"계속"} 체납 단추를 채우다 1) 해보다 세트 제1회 로 제1회 로서 정수의 세트 더 투 로 더 투 로서 정수의 에 관하여 착오 표시 대화상자 "계산기에 숫자만 입력할 수 있다." 와 함께 칭호를 붙이다 "오류" 단추 {"확인"} 체납 단추를 채우다 1 돌아오다 종지부를 찍다 해보다 - 추가? 만일 그 버튼이 돌아왔다 의 (표시 대화상자 "추가?" 단추 {"아니오", "예"} 체납 단추를 채우다 2) 이다 "예" 그때 세트 ans 로 (제1회 + 더 투) 표시 대화상자 ans 와 함께 칭호를 붙이다 "답변" 단추 {"확인"} 체납 단추를 채우다 1 라고 말하다 ans - 뺄셈? 다른 만일 그 버튼이 돌아왔다 의 (표시 대화상자 "추상?" 단추 {"아니오", "예"} 체납 단추를 채우다 2) 이다 "예" 그때 세트 ans 로 (제1회 - 더 투) 표시 대화상자 ans 와 함께 칭호를 붙이다 "답변" 단추 {"확인"} 체납 단추를 채우다 1 라고 말하다 ans - 곱하기? 다른 만일 그 버튼이 돌아왔다 의 (표시 대화상자 "멀티플라이?" 단추 {"아니오", "예"} 체납 단추를 채우다 2) 이다 "예" 그때 세트 ans 로 (제1회 * 더 투) 표시 대화상자 ans 와 함께 칭호를 붙이다 "답변" 단추 {"확인"} 체납 단추를 채우다 1 라고 말하다 ans -- 나누기? 다른 만일 그 버튼이 돌아왔다 의 (표시 대화상자 "분할?" 단추 {"아니오", "예"} 체납 단추를 채우다 2) 이다 "예" 그때 세트 ans 로 (제1회 / 더 투) 표시 대화상자 ans 와 함께 칭호를 붙이다 "답변" 단추 {"확인"} 체납 단추를 채우다 1 라고 말하다 ans 다른 지연시키다 1 라고 말하다 "함수를 선택하지 않으셨군요.작전이 취소되었소." 종지부를 찍다 만일 종지부를 찍다 고하다
간단한 사용자 이름 및 암호 대화 상자 순서.여기서 사용자 이름은 John이고 암호는 app123:
고하다 신청 "파인더" 세트 패스앤스 로 "app123" 세트 userAns 로 "존" 만일 그 반송된 문자 의 (표시 대화상자 "사용자 이름" 체납 대답하다 "") 이다 userAns 그때 표시 대화상자 "수정" 단추 {"계속"} 체납 단추를 채우다 1 만일 그 반송된 문자 의 (표시 대화상자 "사용자 이름 : 존" & 돌아오다 & "암호" 체납 대답하다 "" 단추 {"계속"} 체납 단추를 채우다 1 와 함께 숨은 대답하다) 이다 패스앤스 그때 표시 대화상자 "액세스 권한 부여" 단추 {"확인"} 체납 단추를 채우다 1 다른 표시 대화상자 "잘못된 비밀번호" 단추 {"확인"} 체납 단추를 채우다 1 종지부를 찍다 만일 다른 표시 대화상자 "잘못된 사용자 이름" 단추 {"확인"} 체납 단추를 채우다 1 종지부를 찍다 만일 종지부를 찍다 고하다
개발 도구
스크립트 편집기
스크립트 편집기는 스크립트 작성, 검증, 컴파일, 실행 및 디버깅을 위한 도구를 포함하여 AppleScript에 대한 통합 프로그램 환경을 제공한다.또한 스크립트 가능한 애플리케이션에서 AppleScript 사전을 열고 볼 수 있는 메커니즘을 제공하고, 스크립트를 다양한 형식(컴파일된 스크립트 파일, 애플리케이션 패키지, 스크립트 번들 및 일반 텍스트 파일)으로 저장할 수 있으며, 일반적으로 구문 강조 표시 및 미리 작성된 코드 조각과 같은 기능을 제공한다.
애플에서
- AppleScript 편집기(스크립트 편집기)
- MacOS와 함께 패키징된 AppleScript 편집기는 OS X Mavericks(10.9)와 Script Editor(10.6)를 통해 Mac OS X Snow Leopard(10.6)에서 AppleScript Editor로 불린다.스크립트는 컴파일 및 실행이 가능한 문서 편집 창에 작성되며, 이 창에는 기록 정보, 실행 결과 및 기타 정보를 디버깅 목적으로 사용할 수 있는 다양한 창이 포함되어 있다.스크립팅 사전과 미리 작성된 코드 스니펫은 애플리케이션 메뉴를 통해 이용할 수 있다.OS X 요세미티(10.10) 이후 스크립트 편집기에는 AppleScript와 JavaScript 모두에서 쓸 수 있는 기능이 포함되어 있다.[13]
- 엑스코드
- AppleScript를 편집하거나 AppleScript로 작성된 전체 응용프로그램을 만드는 기능을 갖춘 응용프로그램을 개발하기 위한 도구 모음입니다.
제3자로부터
- Script Debugger, Late Night Software
- AppleScript용 타사 상용 IDE.Script Debugger는 스크립트 작성자가 단일 스텝, 중단점, 기능/하부 경로, 가변 추적 등을 통해 AppleScript를 디버깅할 수 있는 보다 진보된 AppleScript 환경이다.또한 Script Debugger에는 사용자가 실제 상황에서 사전의 실제 상황을 볼 수 있는 고급 사전 브라우저가 포함되어 있다.즉, 사전이 다루는 것만을 나열하는 것이 아니라 페이지(Page)에서 문서를 열 수 있고, 예를 들어 사전의 용어가 해당 문서에 어떻게 적용되는지 볼 수 있어 사전의 어느 부분을 사용할지 쉽게 결정할 수 있다.Script Debugger는 기본 경보 및 대화 상자 이외의 GUI로 스크립트를 생성하도록 설계되지 않았지만 스크립트의 코딩 및 디버깅에 더 중점을 두고 있다.
- Smile and SmileLab
- AppleScript용 타사 프리웨어/상업 IDE로, 전적으로 AppleScript로 작성됨.[14]스마일(Smile)은 무료이며, 주로 AppleScript 개발을 위해 설계되었다.SmileLab은 수치 분석, 그래프 작성, 기계 자동화 및 웹 제작을 위한 광범위한 추가 기능을 갖춘 상용 소프트웨어다.Smile과 SmileLab은 전체 스크립트를 실행하고 저장하기 위한 AppleScript 창, 코드별 테스트를 위한 AppleScript 터미널, 텍스트 및 XML을 사용하기 위한 유니코드 창 등 다양한 창을 사용한다. 사용자는 AppleScript에 내장된 대화 상자가 부족한 상황에 대해 대화 상자라고 하는 복잡한 인터페이스를 만들 수 있다.
- AOSBjC 익스플로러 4, 셰인 스탠리 출신
- AppleScript, 특히 AppleScriptObjC에 대한 타사 상용 IDE 중단.[15]주요 특징은 코코아 객체/이벤트 로깅, 디버깅 및 코드 완성이다.사용자들은 다른 스크립트 가능한 애플리케이션과 같은 코코아 이벤트와 오브젝트를 읽을 수 있다.이 도구는 원래 AppleScript Libraries(OS X Mavericks에서 사용 가능)용으로 제작되었다.AppleScript Libraries는 재사용 가능한 AppleScript 구성요소를 목표로 하며, 내장된 AppleScript 사전(sdef)을 지원한다.아소bjC 익스플로러 4도 외부 Xcode 스크립트 편집기가 될 수 있다.
스크립트 발사기
애플스크립트는 스크립트 편집기에서 실행할 수 있지만, 일반적으로 스크립트 편집기 애플리케이션을 열지 않고 스크립트를 직접 실행하는 것이 더 편리하다.이를 위한 여러 가지 옵션이 있다.
- 애플츠
- AppleScripts는 스크립트 편집기에서 애플리케이션(애플릿 또는 드래그 앤 드롭을 통해 입력을 수락할 때 방울이라고 함)으로 저장할 수 있다.[3]: 69 애플릿은 선착장, 파인더 창 툴바, 스포트라이트, 타사 애플리케이션 발사대, 또는 애플리케이션을 실행할 수 있는 다른 모든 장소에서 실행할 수 있다.
- 폴더 작업
- AppleScript 폴더 작업을 사용하면 폴더에서 특정 변경(파일 추가 또는 제거 등)이 발생할 때 스크립트를 시작할 수 있다.[17]폴더를 클릭하고 폴더 작업 설정...을 선택하여 폴더 작업을 할당할 수 있다.상황별 메뉴에서 이 명령의 위치는 Mac OS X 10.6.x에서 이전 버전과 약간 다르다.이와 같은 조치는 헤이즐과 같은 제3자 공익사업에서도 달성할 수 있다.[18]
- 핫키 발사대
- 키보드 단축키는 System Preferences(시스템 기본 설정)의 키보드 & 마우스 설정 기본 설정 창을 사용하여 스크립트 메뉴의 AppleScript에 할당할 수 있다.또한 키 조합을 사용하여 AppleScript를 온디맨드 방식으로 실행할 수 있는 Alfred,[19] FastScripts,[20] 키보드 Maestro,[21] QuikKeys,[22] Quicksilver,[23] TextExpander[24] 등 다양한 타사 유틸리티가 제공된다.
- 스크립트 메뉴
- 시스템 전반의 이 메뉴는 어떤 응용 프로그램이 실행되든 상관없이 볼 수 있는 MacOS 메뉴 바에서 AppleScript에 대한 액세스를 제공한다.([25]또한 많은 Apple 애플리케이션, 일부 타사 애플리케이션 및 일부 추가 기능에서는 자체 스크립트 메뉴를 제공한다.이것들은 다른 방법으로 활성화될 수 있지만, 모든 것이 본질적으로 동일한 방식으로 기능한다.)스크립트 메뉴에서 스크립트를 선택하면 스크립트가 실행된다.Mac OS X 10.6.x이므로 시스템 전체 스크립트 메뉴는 Script Editor의 기본 설정에서 사용할 수 있으며, Mac OS X의 이전 버전에서는 AppleScript Utility 응용 프로그램에서 사용할 수 있다.처음 활성화되면 스크립트 메뉴에는 상당히 일반적이고 기능적인 AppleScripts의 기본 라이브러리가 표시되며, 스크립트 편집기에서도 열 수 있으며 AppleScript 학습의 예로서 사용될 수 있다.스크립트는 특정 응용 프로그램이 전면에 있을 때만 메뉴에 나타나도록 구성할 수 있다.
- Unix 명령줄 및 launchd
- AppleScript는 osascript 명령줄 도구를 사용하여 Unix 명령줄 또는 예약된 작업의 launchd에서 실행할 수 있다.[3]: 716 [26]osascript 도구는 컴파일된 스크립트(.scpt 파일)와 일반 텍스트 파일(.applict 파일)을 실행할 수 있으며, 이러한 파일들은 런타임에 도구로 컴파일된다.스크립트 응용 프로그램은 Unix open 명령을 사용하여 실행할 수 있다.
관련 스크립팅 문제
- AppleScript 라이브러리
- 재사용 가능한 AppleScript 모듈(OS X Mavericks 이후 사용 가능), AppleScript 또는 AppleScriptObjC로 작성되어 특정 위치에 스크립트 파일 또는 번들로 저장,[27] 다른 스크립트로부터 호출할 수 있음.번들로 저장될 때,[28] 라이브러리는 AppleScript 사전(sdef) 파일을 포함할 수 있으므로 스크립팅 추가처럼 작동하지만 AppleScript 또는 AppleScriptObjC로 작성된다.
- 애플스크립트 스튜디오
- Mac OS X 10.4 및 10.5의 Xcode 패키지의 일부인 AppleScript 애플리케이션에 코코아 인터페이스를 부착하기 위한 프레임워크는 이제 AppleScriptObjC에 유리하게 사용되지 않는다.[29]: 438
- AppleScriptObjC
- Mac OS X Snow Leopard 이후 [30]Xcode 패키지의 일부로 AppleScript/Objective-C 또는 ASOC라고도 불리는 코코아 개발 소프트웨어 프레임워크.[31]AppleScriptObjC는 AppleScripts가 코코아 클래스와 방법을 직접 사용할 수 있도록 한다.[32]다음 표는 다양한 버전의 MacOS에서 AppleScriptObjC의 가용성을 보여준다.[33]
인 Xcode | 사과로 | AppleScriptLibrary에서 | 스크립트 편집기 | |
---|---|---|---|---|
10.6 | ![]() | |||
10.7 | ![]() | ![]() | ||
10.8 | ![]() | ![]() | ||
10.9 | ![]() | ![]() | ![]() | |
10.10 | ![]() | ![]() | ![]() | ![]() |
- 오토메이터
- 워크플로우가 작업으로부터 구축되는 그래픽 모듈식 편집 환경.프로그래밍 지식 없이도 애플스크립트의 많은 기능을 복제하려는 의도다.오토매이터는 오토매이터의 단순화된 프레임워크에 비해 너무 복잡한 작업에 대해 AppleScript를 포함하고 실행하도록 특별히 설계된 작업을 가지고 있다.[34]
- 스크립팅 가능한 핵심 시스템 애플리케이션
- MacOS와 함께 패키징된 이러한 백그라운드 전용 애플리케이션은 AppleScript가 일반적으로 스크립팅할 수 없는 기능에 액세스할 수 있도록 하기 위해 사용된다.Mac OS X 10.6.3의 경우, VoiceOver(스크립트 가능한 청각 및 점자 스크린 리더 패키지), System Events(스크립트 불가능한 응용 프로그램의 제어, 특정 시스템 기능 및 기본 파일 작동에 대한 액세스), 프린터 Setup Utility(인쇄 작업을 처리하기 위한 스크립트 가능 유틸리티), Image Events(핵심 이미지 m)의 스크립트 가능 응용 프로그램이 포함된다.Anipulation), HelpViewer(도움말 표시용 스크립트 유틸리티), Database Events(최소 SQLite3 데이터베이스 인터페이스) 및 AppleScript Utility(몇 가지 AppleScript 관련 기본 설정을 스크립팅하기 위한)와 시스템에서 사용되는 몇 가지 유틸리티 응용 프로그램.
- 스크립팅 추가 사항(OSAX)
- Apple 또는 타사에서 개발한 AppleScript용 플러그인.[35]내장 명령 집합을 확장하여 AppleScript의 기능을 확장하고 애플리케이션에서 제공하는 기능에 다소 덜 의존하도록 설계되었으며, MacOS에는 AppleScrip에 속하지 않는 명령과 클래스의 집합을 추가하는 표준 추가사항(StandardAddditions.osax)이라는 스크립팅 추가 모음도 포함되어 있다.사용자 상호작용 대화상자, 파일 읽기 및 쓰기, 파일 시스템 명령, 날짜 함수, 텍스트 및 수학적 연산 등을 포함한 t의 핵심 기능들. 이 OSAX가 없다면 AppleScript는 애플리케이션에 의해 직접 제공되지 않는 많은 기본적인 작업을 수행할 수 있는 용량을 갖지 못할 것이다.
언어 필수품
클래스(데이터 유형)
애플리케이션은 전문 클래스(또는 데이터 유형)를 정의할 수 있지만, AppleScript에는 다수의 기본 제공 클래스도 있다.이러한 기본 데이터 클래스는 언어에 의해 직접 지원되며 스크립팅 가능한 애플리케이션에 의해 보편적으로 인식되는 경향이 있다.가장 흔한 것은 다음과 같다.
- 기본 객체
- application: tell 문(the tell 문)의 지정자로 주로 사용되는 애플리케이션 객체(application object)
tell application "Finder" …
). - 스크립트: 스크립트 개체.스크립트 개체는 스크립트용 컨테이너입니다.모든 AppleScript는 실행 시 스크립트 객체를 생성하며, 스크립트 객체는 AppleScript 내에서 생성될 수 있다.
- class: 다른 객체의 유형을 지정하는 메타 객체.
- 참조: 유효한 개체를 가리킬 수도 있고 아닐 수도 있는 평가되지 않은 개체 지정자를 캡슐화하는 개체.해당 서비스에 액세스하여 온디맨드 방식으로 평가 가능
contents
재산
- application: tell 문(the tell 문)의 지정자로 주로 사용되는 애플리케이션 객체(application object)
- 표준 데이터 개체
- 상수: 상수 값.다음과 같은 여러 가지 언어 정의 상수가 있다.
pi
,tab
그리고linefeed
. - 부울: 부울 참/거짓 값.사실 의 하위 클래스.
constant
. - number: 드물게 사용되는 추상 슈퍼클래스
integer
그리고real
. - 정수: 정수.내장된 수학 연산자로 조작할 수 있다.
- real: 부동 소수(실제) 번호.내장된 수학 연산자로 조작할 수 있다.
- 날짜: 날짜 및 시간.
- 텍스트: 텍스트.2.0 이전 버전의 AppleScript에서는
text
클래스는 와 구별되었다.string
그리고Unicode text
그리고 이 세 가지는 다소 다르게 행동했다. 2.0(10.5) 이후에서는 모두 동의어이며 모든 텍스트는 UTF-16("유니코드")으로 처리된다.[36]
- 상수: 상수 값.다음과 같은 여러 가지 언어 정의 상수가 있다.
- 컨테이너
- list: 순서가 지정된 개체 목록.응용 프로그램에 의해 정의된 다른 목록과 클래스를 포함하여 모든 클래스를 포함할 수 있다.
- record: 객체 키 목록.키-값 쌍으로 구성된 경우를 제외하고 목록과 같다.런타임 키 액세스는 지원되지 않으므로 모든 키는 컴파일 시간 상수 식별자여야 한다.
- 파일 시스템
- 잡다한
- RGB color: 색상으로 작동하는 명령 및 개체에 사용할 RGB 트리플t(16비트 하이 컬러 형식)를 지정하십시오.
- 단위 유형: 표준 단위 간에 변환되는 클래스.예를 들어, 값은 다음과 같이 정의될 수 있다.
square yards
, 다음으로 변환됨square feet
장치 유형 간에 주조(사용:as
운영자(operator.
언어 구조
많은 AppleScript 프로세스는 코드 블록에 의해 관리되며, 여기서 블록은 명령 명령으로 시작하고 끝 명령문으로 끝난다.가장 중요한 구조는 아래에 설명되어 있다.
조건
애플스크립트는 두 종류의 조건들을 제공한다.
-- 단순 조건부 만일 x < 1000 그때 세트 x 로 x + 1 -- 복합 조건부 만일 x 보다 크다 3 그때 -- 명령어 다른 -- 기타 명령 종지부를 찍다 만일
루프스
애플스크립트의 반복 루프는 몇 가지 약간 다른 맛으로 나온다.그들은 모두 반복선과 끝 반복선 사이에서 여러 번 블록을 실행한다.명령 종료 반복을 통해 루핑을 조기에 중지할 수 있다.
영원히 반복하라.
되풀이하여 말하다 -- 반복할 명령 종지부를 찍다 되풀이하여 말하다
주어진 횟수를 반복한다.
되풀이하여 말하다 10 시대 -- 반복할 명령 종지부를 찍다 되풀이하여 말하다
조건부 루프.루프가 실행되는 동안 내부 블록은 조건이 참으로 평가되는 한 반복된다.블록을 실행할 때마다 조건을 재평가한다.루프까지의 반복은 그렇지 않으면 동일하지만 조건이 false로 평가되는 한 블록은 실행된다.
세트 x 로 5 되풀이하여 말하다 하는 동안에 x > 0 세트 x 로 x - 1 종지부를 찍다 되풀이하여 말하다 세트 x 로 5 되풀이하여 말하다 까지 x ≤ 0 세트 x 로 x - 1 종지부를 찍다 되풀이하여 말하다
변수를 사용하여 반복하십시오.루프를 시작할 때 변수는 시작 값에 할당된다.블록을 실행할 때마다 옵션 스텝 값이 변수에 추가된다.단계 값은 기본적으로 1로 지정된다.
-- 블록을 2000번 반복, 1부터 2000까지 모든 값을 얻음 되풀이하여 말하다 와 함께 i 로부터 1 로 2000 -- 반복할 명령 종지부를 찍다 되풀이하여 말하다 -- 블록을 4번 반복하면 값 100, 75, 50, 25를 얻을 수 있다. 되풀이하여 말하다 와 함께 i 로부터 100 로 25 에 의해 -25 -- 반복할 명령 종지부를 찍다 되풀이하여 말하다
목록을 열거하십시오.각 반복에서 지정된 목록의 새 항목으로 루프변수 설정
세트 총계 로 0 되풀이하여 말하다 와 함께 루프변수성 에 {1, 2, 3, 4, 5} 세트 총계 로 총계 + 루프변수성 종지부를 찍다 되풀이하여 말하다
애플리케이션 타겟팅 | 오류 처리 |
---|---|
-- 간단한 형태 고하다 신청 "사파리" 로 작동시키다 -- 복합체 고하다 신청 "MyApp" -- 앱에 대한 명령 종지부를 찍다 고하다 | 해보다 -- 테스트할 명령어 에 관하여 착오 -- 오류 명령 종지부를 찍다 해보다 |
이 블록 구조에서 한 가지 중요한 변화는 핸들러(기능 유사 서브루틴)를 정의하는 데 사용되는 온엔드 ...블록의 형태다.핸들러는 functionName()에서 시작하여 end functionName으로 종료되며, 스크립트의 어딘가에서 호출되지 않는 한 일반 스크립트 흐름의 일부로 실행되지 않는다.
함수 핸들러 | 폴더 작업 차단 | 실행 핸들러 |
---|---|---|
에 관하여 myFunction(매개변수...) -- 서브루틴 명령어 종지부를 찍다 myFunction | 에 관하여 추가 폴더 항목들 로 이 폴더 다음에 받는 테세아이템 -- 폴더 또는 항목에 적용할 명령 종지부를 찍다 추가 폴더 항목들 로 | 에 관하여 달리다 -- 명령어 종지부를 찍다 달리다 |
핸들러는 또한 "on" 대신 "to"를 사용하여 정의할 수 있으며, 라벨이 부착된 매개변수를 받아들이도록 작성할 수 있다.
레이블이 지정된 매개 변수가 있는 핸들러 | "to" 및 레이블 지정 매개 변수를 사용하는 핸들러 |
---|---|
에 관하여 바위투성이의 주위에서 그 시계를 맞추다 표시 대화상자 (시계를 맞추다 로서끈을 매다) 종지부를 찍다 바위투성이의 -- 다음 항목과 함께 호출: 바위투성이의 주위에서 그 현재 날짜 | 로 수표 을 위해 당신의 번호 로부터 밑바닥의 스루 맨 위의 만일 밑바닥의 ≤ 당신의 번호 그리고 당신의 번호 ≤ 맨 위의 그때 표시 대화상자 "축하해!득점을 하셨어요." 종지부를 찍다 만일 종지부를 찍다 수표 --calling with: 수표 을 위해 8 로부터 7 스루 10 |
AppleScript에는 미리 정의된 핸들러(run, open, 유휴, 셧다운)의 네 가지 유형이 있으며, 각각은 위에 나타낸 실행 핸들러와 동일한 방식으로 생성된다.
- 실행 핸들러
- 스크립트가 실행될 때 호출되는 스크립트의 기본 코드를 정의하십시오.인수가 스크립트에 전달되지 않는 한 처리기 블록 실행은 선택 사항이다.명시적 실행 핸들러 블록이 생략된 경우, 처리기 블록 내부에 포함되지 않은 모든 코드가 암시적 실행 핸들러에 있는 것처럼 실행된다.
- 오픈 핸들러
- "open Items"를 사용하여 정의됨.
에 관하여 개방된 더 아이템스 되풀이하여 말하다 와 함께 ThisItem 에 더 아이템스 고하다 신청 "파인더" 로 갱신하다 ThisItem 종지부를 찍다 되풀이하여 말하다 종지부를 찍다 개방된
'열린 핸들러'가 포함된 스크립트를 애플릿으로 저장하면 애플릿은 드롭릿이 된다.드롭릿은 파인더 아이콘으로 식별될 수 있으며, 아이콘 위로 항목을 떨어뜨릴 수 있음을 나타내는 화살표가 포함되어 있다.드롭릿의 오픈 핸들러는 파일이나 폴더를 드롭릿 아이콘에 놓을 때 실행된다.드롭릿 아이콘에 삭제된 항목에 대한 참조는 열린 핸들러의 매개변수로 드롭릿 스크립트로 전달된다.드롭렛은 또한 실행 핸들러를 실행하면서 일반 애플릿과 같은 방법으로 실행될 수 있다.
- 유휴 핸들러
- 응용 프로그램이 유휴 상태일 때 시스템에 의해 주기적으로 실행되는 서브루틴.
에 관하여놀고 있는 --스크립트의 실행이 완료되면 실행할 코드 돌아오다 60 -- 유휴 처리기를 다시 실행하기 전에 일시 중지할 시간(초) 종지부를 찍다놀고 있는
유휴 핸들러는 개방형 애플릿으로 저장된 애플릿이나 물방울에 사용할 수 있으며, 특정 데이터나 이벤트를 감시하는 스크립트에 유용하다.유휴 시간의 길이는 기본적으로 30초지만 [38]서브루틴 끝에 'return x' 문을 포함시켜 변경할 수 있으며, 여기서 x는 핸들러를 다시 실행하기 전에 시스템이 기다려야 하는 시간(초)이다.
- 종료 핸들러
- 애플릿이 종료 요청을 받을 때 실행되는 핸들러.이를 통해 데이터를 저장하거나 종료하기 전에 다른 종료 작업을 수행할 수 있다.
에 관하여 그만두다 --스크립트가 종료되기 전에 실행되도록 설정 계속하다 그만두다 -- 스크립트가 실제로 종료되는 데 필요함 종지부를 찍다 그만두다
- 스크립트 개체
스크립트 개체는 다음 구문을 사용하여 명시적으로 정의할 수 있다.
각본을 뜨다 스크립트 이름 -- 스크립트 관련 명령 및 처리기 종지부를 찍다 각본을 뜨다
스크립트 개체는 애플리케이션 개체에 사용되는 것과 동일한 '텔' 구조를 사용할 수 있으며, 파일에서 로드되어 파일에 저장할 수 있다.경우에 따라 스크립트 개체를 사용하여 런타임 실행 시간을 단축할 수 있다.
잡화정보
- 변수는 엄격히 입력되지 않으므로 선언할 필요가 없다.변수는 모든 데이터 유형(스크립트와 기능 포함)을 취할 수 있다.다음 명령은 변수 생성의 예입니다.
세트 변수1 로 1 -- variable1이라는 정수 변수 생성 세트 변수2 로 "여보세요" -- variable2라는 텍스트 변수 생성 베끼다 {17, "doubleday"} 로 변수3 -- variable3이라는 목록 변수 생성 세트 {변수4, 가변 5} 로 변수3 -- variable3의 목록 항목을 별도의 변수4와 변수5 세트 변수6 로 각본을 뜨다 myscript -- 변수를 스크립트의 인스턴스에 설정
- 스크립트 개체는 전체 개체로, 메서드와 데이터를 캡슐화하고 상위 스크립트에서 데이터와 동작을 상속할 수 있다.
- 서브루틴은 응용 프로그램 텔 블록에서 직접 호출할 수 없다.그렇게 하려면 'my' 또는 'my of me' 키워드를 사용하십시오.
고하다 신청 "파인더" 세트 x 로 나의 마이핸들러() - 또는 세트 x 로 마이핸들러() 의 나 종지부를 찍다 고하다 에 관하여 마이핸들러() -- 명령어 종지부를 찍다 마이핸들러
추가 명령을 스크립팅하는 데 동일한 기술을 사용하면 오류를 줄이고 성능을 향상시킬 수 있다.
고하다 신청 "파인더" 세트 anyNumber 로 나의 (난수 로부터 5 로 50) 종지부를 찍다 고하다
개방형 스크립팅 아키텍처
AppleScript 구현의 중요한 측면은 OSA(Open Scripting Architecture)이다.[39]애플은 다른 스크립팅 언어와 QuicKeys 및 UserLand Frontiner와 같은 타사 스크립팅/자동화 제품에 OSA를 제공하여 AppleScript와 동등한 상태에서 작동하도록 한다.AppleScript는 스크립팅 컴포넌트로 구현되었으며, 그러한 컴포넌트를 OSA에 연결하기 위한 기본 사양은 공개되어 다른 개발자들이 자신의 스크립팅 컴포넌트를 시스템에 추가할 수 있게 되었다.스크립트를 로드, 저장 및 컴파일하기 위한 공용 클라이언트 API는 그러한 모든 구성 요소에 대해 동일하게 작동하며, 이는 애플릿과 방울이 이러한 스크립트 언어 중 하나로 스크립트를 보유할 수 있음을 의미하기도 한다.
OSA의 한 가지 특징은 하이퍼카드의 외부 명령에서 영감을 받은 스크립팅 추가, 즉 OSAX for Open Scripting Architecture eXtension이다.[35]스크립팅 추가는 프로그래머가 애플스크립트의 기능을 확장할 수 있는 라이브러리다.스크립팅 추가 사항으로 포함된 명령은 시스템 전체에서 사용할 수 있으며 애플리케이션에 종속되지 않는다(§ AppleScript Libraries 참조).또한 AppleScript Editor는 OSA 언어의 일부를 직접 편집하고 실행할 수 있다.
자동화를 위한 자바스크립트
![]() | 이 섹션은 JXA 및 AppleScript 스크립팅 비교와 함께 확장해야 한다.덧셈으로 도와줘도 된다.(2017년 5월) |
Macintosh 버전의 Perl, Python, Ruby 및 Tcl은 모두 OSA 구성 요소가 되지 않고 Apple 이벤트와 함께 작업할 수 있는 네이티브 수단을 [13]지원하지만 OS X Yosemite 및 이후 버전의 MacOS에서는 AppleScript에 대한 JXA(JavaScript for Automation) 구성 요소가 AppleScript에 대한 유일한 심각한 OSA 언어로 남아 있다.[29]: 516
JXA는 또한 목표-C(및 C 언어) 외국어 인터페이스를 제공한다.[13]WebKit의 JavaScriptCore 엔진을 기반으로 하는 환경으로서, JavaScript 기능 세트는 시스템 Safari 브라우저 엔진과 동기화된다.JXA는 JavaScript 모듈 시스템을 제공하며 Common을 사용할 수도 있다.브라우저를 통한 JS 모듈.[40]
참고 항목
- BBEdit — 대본이 잘 되는 텍스트 편집기
참조
- ^ "OS X 10.10 Yosemite release date". October 16, 2014. Retrieved November 16, 2014.
- ^ a b c d Goldstein, Adam (2005). AppleScript: the missing manual. Sebastopol, CA: O'Reilly Media. ISBN 0596008503. OCLC 56912218.
- ^ a b c d e f g h i Sanderson, Hamish; Rosenthal, Hanaan (2009). Learn AppleScript: the comprehensive guide to scripting and automation on Mac OS X (3rd ed.). Berkeley: Apress. doi:10.1007/978-1-4302-2362-7_27. ISBN 9781430223610. OCLC 308193726.
- ^ Flynn, Laurie (February 27, 1989). "Apple Ponders Standardizing on HyperTalk". InfoWorld. Vol. 11, no. 9. p. 31.
- ^ a b Cook, William (2007). "AppleScript" (PDF). History of Programming Languages (HOPL III). Proceedings of the third ACM SIGPLAN conference. Association for Computing Machinery: 1–21. doi:10.1145/1238844.1238845. ISBN 9781595937667. S2CID 220938191.
- ^ "AppleScript Language Guide commands reference: do shell script". developer.apple.com. Retrieved September 15, 2019.
- ^ "Apple's greatest hits: 30 significant products". macworld.com. Retrieved September 12, 2019.
- ^ Gruber, John (March 2013). "The unlikely persistence of AppleScript". Macworld. 30 (3): 100.
- ^ Lovejoy, Ben (November 17, 2016). "Sal Soghoian says 'ask Apple' about future of Mac user automation as company eliminates position". 9to5mac.com. Retrieved May 8, 2017.
- ^ Evans, Jonny (November 17, 2016). "Does Apple really want to kill Automator, AppleScript? Shock termination of veteran Apple developer guru sends shockwaves across the Mac community". Computerworld.com. Retrieved May 8, 2017.
- ^ Gamet, Jeff (November 23, 2016). "Apple's intent isn't the same as committing to mac automation". macobserver.com. Retrieved May 8, 2017.
- ^ "Scriptable Applications". developer.apple.com. Retrieved July 26, 2018.
- ^ a b c Siracusa, John (October 16, 2014). "OS X 10.10 Yosemite: The Ars Technica Review: JavaScript automation". Ars Technica. Retrieved May 8, 2017.
- ^ "Smile and SmileLab Home Page". satimage.fr. Retrieved May 8, 2017.
- ^ "ASObjC Explorer 4 Discontinued". macosxautomation.com. Archived from the original on June 21, 2017. Retrieved May 8, 2017.
- ^ "Mark Alldritt's Journal » FaceSpan". blog.latenightsw.com. Retrieved May 8, 2017.
- ^ "AppleScript Language Guide: Folder Actions Reference". developer.apple.com. Retrieved May 8, 2017.
- ^ Miller, Dan (December 22, 2010). "Capsule review: Hazel 2.3". Macworld.com. Retrieved May 8, 2017.
- ^ Beam, Brian (February 10, 2015). "Alfred review: This Mac app launcher continues to shine, but Alfred Remote doesn't stack up". Macworld.com. Retrieved May 10, 2017.
- ^ Frakes, Dan (June 2, 2011). "Capsule review: FastScripts 2.5". Macworld.com. Retrieved May 8, 2017.
- ^ Breen, Christopher (June 4, 2013). "Mac Gems: Keyboard Maestro 6 is a genius at repetitive tasks". Macworld.com. Retrieved May 10, 2017.
- ^ Breen, Christopher (May 7, 2010). "Capsule review: QuicKeys 4". Macworld.com. Retrieved May 8, 2017.
- ^ "AppleScripts – Quicksilver Wiki". qsapp.com. Retrieved May 10, 2017.
- ^ Fleishman, Glenn (June 12, 2015). "TextExpander 5 review". Macworld.com. Retrieved May 8, 2017.
- ^ "Mac Automation Scripting Guide: Using the Systemwide Script Menu". developer.apple.com. Retrieved May 8, 2017.
- ^ "osascript(1) Mac OS X Manual Page". developer.apple.com. Retrieved May 8, 2017.
- ^ "AppleScript Libraries". macosautomation.com. Retrieved May 8, 2017.
- ^ "WWDC 2013 Session 416: Introducing AppleScript Libraries". asciiwwdc.com. Retrieved May 8, 2017.
- ^ a b Neuburg, Matt (2006). AppleScript: the definitive guide (2nd ed.). Beijing: O'Reilly Media. ISBN 0596102119. OCLC 68694976.
- ^ Tsai, Michael (September 29, 2014). "AppleScript and Yosemite". mjtsai.com. Retrieved May 9, 2017.
- ^ "AppleScriptObjC Release Notes". developer.apple.com. Retrieved May 8, 2017.
- ^ Waldie, Ben (September 6, 2012). "Building a basic AppleScriptObjC (Cocoa-AppleScript) application with Xcode". peachpit.com. Retrieved May 9, 2017.
- ^ 표 조정 대상:
- ^ "Introduction to Automator AppleScript Actions Tutorial". developer.apple.com. Retrieved May 8, 2017.
- ^ a b "Technical Note TN1164: Scripting Additions for Mac OS X". developer.apple.com. Retrieved May 8, 2017.
- ^ "AppleScript Release Notes: 10.5 Changes". developer.apple.com. Retrieved May 8, 2017.
- ^ "POSIX file — Class Reference — AppleScript Language Guide". developer.apple.com. Retrieved January 8, 2018.
- ^ "AppleScript Language Guide: Handlers in Script Applications". developer.apple.com. Retrieved July 21, 2013.
- ^ "AppleScript Overview: Open Scripting Architecture". developer.apple.com. Retrieved May 8, 2017.
- ^ "Importing Scripts". GitHub. JXA-Cookbook. December 6, 2019. Retrieved December 9, 2019.
추가 읽기
- "AppleScript Language Guide". developer.apple.com. 2016. Retrieved May 9, 2017. PDF 형식의 이전 버전(2015년): CiteSeerx: 10.1.1.697.5220
- Munro, Mark Conway (2010). AppleScript. Developer Reference. Wiley. ISBN 978-0-470-56229-1.
- Rosenthal, Hanaan; Sanderson, Hamish (2010). Learn AppleScript: The Comprehensive Guide to Scripting and Automation on Mac OS X (Third ed.). Apress. ISBN 978-1-4302-2361-0.
- Soghoian, Sal; Cheeseman, Bill (2009). Apple Training Series: AppleScript 1-2-3. Peachpit Press. ISBN 978-0-321-14931-2.
- Cook, William (2007). "AppleScript" (PDF). History of Programming Languages (HOPL III). Proceedings of the third ACM SIGPLAN conference. ACM: 1–21. doi:10.1145/1238844.1238845. ISBN 9781595937667. S2CID 220938191.
- Ford Jr., Jerry Lee (2007). AppleScript Programming for the Absolute Beginner. Course Technology. ISBN 978-1-59863-384-9.
- Neuburg, Matt (2006). AppleScript: The Definitive Guide. O'Reilly Media. ISBN 0-596-10211-9.
- Goldstein, Adam (2005). AppleScript: The Missing Manual. O'Reilly Media. ISBN 0-596-00850-3.
- Trinko, Tom (2004). AppleScript for Dummies. For Dummies. ISBN 978-0-7645-7494-8.
외부 링크
![]() | 위키북스는 애플스크립트를 주제로 한 책을 가지고 있다. |
- Curlie의 AppleScript(사이트의 콘텐츠는 오래된 내용임)
- "AppleScript Overview". developer.apple.com. 2007. Retrieved November 7, 2020.
- "AppleScript for Python Programmers (Comparison Chart)". aurelio.net. 2005. Retrieved May 9, 2017.
- "Doug's AppleScripts for iTunes". dougscripts.com. Retrieved May 9, 2017.
- "Mac OS X Automation". macosautomation.com. Retrieved May 9, 2017.
- "MacScripter AppleScript community". macscripter.net. Retrieved May 9, 2017.