osascript는 macOS 터미널에서 AppleScript나 다른 OSA 스크립트를 실행할 때 사용하는 명령어입니다. Finder, Safari, 시스템 이벤트, 알림 창처럼 macOS 앱과 시스템 기능을 명령어로 다루고 싶을 때 사용할 수 있습니다.
터미널을 자주 사용하는 경우 앱을 직접 클릭하지 않고도 간단한 작업을 처리하고 싶을 때가 있습니다. 예를 들면 앱을 실행하거나, 대화상자를 띄우거나, 특정 앱에 명령을 전달하는 작업이 이에 해당합니다.
이럴 때 osascript를 사용하면 셸 명령어 안에서 AppleScript를 실행할 수 있어 macOS 자동화 작업을 비교적 간단하게 구성할 수 있습니다. 다만 macOS의 앱 제어 권한과 연결되는 명령어이기 때문에 기본 사용법뿐 아니라 권한 허용과 보안 주의점도 함께 이해하는 것이 좋습니다.
필자의 경우 macOS에서 반복적으로 처리하는 작은 작업들을 터미널 명령어로 묶어두고 싶을 때 osascript를 활용하는 경우가 많습니다. 처음에는 단순히 알림창을 띄우거나 앱을 실행하는 정도로 시작해도 충분하며, 이후 필요에 따라 AppleScript 파일로 분리해 관리하면 됩니다.
osascript 란
osascript는 macOS에서 제공되는 명령줄 도구로, AppleScript를 포함한 Open Scripting Architecture 기반 스크립트를 실행합니다. 공식 매뉴얼 기준으로 osascript는 명령줄의 -e 옵션, 지정된 스크립트 파일, 표준 입력을 통해 전달된 스크립트를 실행할 수 있습니다.
Open Scripting Architecture는 macOS에서 스크립트 언어가 앱이나 시스템 기능과 상호작용할 수 있도록 해주는 구조입니다. Apple의 macOS 자동화 문서에서도 AppleScript와 JavaScript for Automation이 앱 제어 및 Objective-C 프레임워크와 연결될 수 있는 자동화 기술로 설명됩니다.
osascript라는 이름은 OSA script를 실행한다는 의미에 가깝습니다. 일반적으로는 AppleScript를 터미널에서 실행할 때 가장 많이 사용되지만, -l 옵션을 사용하면 설치된 다른 OSA 언어를 지정할 수도 있습니다.
현재 macOS 환경에서 osascript는 간단한 자동화 명령, 앱 제어, 대화상자 표시, 단축어와 셸 스크립트 연결 같은 작업에 자주 사용됩니다. 특히 터미널, Automator, shell script, cron, launchd 함께 조합하면 클릭으로 처리하던 작업 일부를 명령어 기반으로 바꿀 수 있습니다.
osascript 특징
osascript의 가장 큰 특징은 macOS의 앱 자동화 기능을 터미널 명령어와 연결해 준다는 점입니다. 단순한 셸 명령어만으로는 접근하기 어려운 앱 동작을 AppleScript 문법으로 전달할 수 있습니다.
참고: 공식 매뉴얼 기준으로 osascript는 한 줄 명령, 스크립트 파일, 표준 입력 방식 모두를 지원합니다. 해당 내용은 macOS 터미널에서 man osascript 명령으로 확인할 수 있으며, 웹에서는 비공식 man page 아카이브인 manpagez.com에서 같은 형식의 내용을 참고할 수 있습니다.
장점
osascript는 macOS에 기본 포함되어 있어 별도의 설치 과정 없이 바로 사용할 수 있습니다. 또한 터미널 명령어와 AppleScript 사이를 이어주기 때문에 작은 자동화 작업을 빠르게 구성하기 좋습니다.
- macOS 기본 명령어입니다. 별도의 패키지 설치 없이 터미널에서 바로 사용할 수 있어 초기 설정 부담이 적습니다.
- 한 줄 명령으로 테스트할 수 있습니다.
-e옵션을 사용하면 짧은AppleScript를 바로 실행할 수 있어 동작 확인이 편리합니다. - 스크립트 파일 실행을 지원합니다. 명령이 길어지거나 반복 사용이 필요한 경우 별도
.scpt또는 텍스트 스크립트 파일로 관리할 수 있습니다. - macOS 앱 제어에 적합합니다. Finder, System Events, Safari처럼 스크립팅을 지원하는 앱에 명령을 전달할 수 있습니다.
- 셸 스크립트와 함께 사용하기 좋습니다.
zsh,bash,launchd, Automator 등과 연결하면 macOS 자동화 범위를 넓힐 수 있습니다.
단점
osascript는 편리하지만 macOS 자동화 권한과 직접 연결될 수 있어 사용 시 주의가 필요합니다. 특히 인터넷에서 복사한 명령어를 그대로 실행하면 의도하지 않은 앱 제어나 파일 접근이 발생할 수 있습니다.
- macOS 전용 도구입니다. Windows나 일반 Linux 환경에서는 같은 방식으로 사용할 수 없으며, macOS 자동화 구조에 맞춰 설계된 명령어입니다.
AppleScript문법을 알아야 활용 범위가 넓어집니다. 간단한 명령은 쉽게 사용할 수 있지만, 복잡한 자동화는AppleScript의tell구문, 객체, 앱 사전 개념을 이해해야 합니다.- 앱마다 지원 범위가 다릅니다. 모든 앱이
AppleScript명령을 동일하게 지원하는 것은 아니며, 앱이 제공하는 스크립팅 사전에 따라 가능한 작업이 달라집니다. - 권한 허용이 필요할 수 있습니다. 다른 앱을 제어하거나 시스템 이벤트를 다루는 경우 macOS가 자동화 또는 손쉬운 사용 권한을 요청할 수 있습니다.
- 보안 확인이 중요합니다. osascript 권한 요청 팝업이 항상 악성이라는 뜻은 아니지만, 어떤 앱이나 명령이 어떤 작업을 요청하는지 확인하지 않고 허용하면 위험할 수 있습니다.
osascript 시작
osascript는 macOS에 기본 포함된 명령어이므로 일반적인 설치 과정이 필요하지 않습니다. 터미널에서 명령어가 인식되는지 확인하면 바로 사용할 수 있습니다. Windows나 Linux에서 동일한 명령어를 기대하면 동작하지 않습니다. osascript는 macOS의 Open Scripting Architecture와 연결된 도구이므로 macOS 환경을 기준으로 사용해야 합니다.
which osascript
터미널을 열고 위 명령어를 사용하면 현재 macOS에서 osascript 명령어 위치를 확인할 수 있습니다. 명령어가 정상적으로 인식되면 일반적으로 /usr/bin/osascript와 같은 경로가 표시됩니다. 경로가 표시된다면 별도의 설치 없이 바로 사용할 수 있습니다.
man osascript
이 명령어를 사용하면 osascript의 기본 도움말 또는 매뉴얼을 확인할 수 있습니다. 매뉴얼에서는 -e 옵션, -l 옵션, 스크립트 파일 실행 방식, 표준 입력 방식 등을 확인할 수 있습니다. 공식 매뉴얼에 따르면 osascript는 명령줄의 -e 옵션으로 전달된 문장, 파일, 표준 입력 순서로 스크립트를 실행할 수 있습니다.
osascript 사용법
osascript 사용법은 크게 한 줄 명령 실행과 스크립트 파일 실행으로 나눌 수 있습니다. 처음에는 -e 옵션으로 간단한 명령을 테스트하고, 명령이 길어지면 파일로 분리하는 방식이 좋습니다. AppleScript는 앱에 명령을 전달할 때 tell application 구조를 자주 사용합니다. Apple의 AppleScript 문서에서도 AppleScript는 객체, 클래스, 속성, 동작을 기반으로 스크립트를 작성하는 언어로 설명됩니다.
한 줄 명령 실행
한 줄 명령 실행은 osascript -e 형식으로 짧은 AppleScript 문장을 바로 실행하는 방식입니다. 간단한 대화상자, 알림, 앱 활성화처럼 동작을 빠르게 확인해야 할 때 사용하기 좋습니다.
osascript -e 'display dialog "Hello from osascript"'
이 명령은 AppleScript의 display dialog 명령을 터미널에서 직접 실행합니다. macOS 화면에 간단한 대화상자를 표시하므로 짧은 테스트나 안내창을 띄우는 용도로 사용할 수 있습니다
osascript -e 'display notification "작업이 완료되었습니다" with title "osascript"'
이 명령은 macOS 알림 센터를 통해 지정한 메시지를 보여줍니다. 긴 작업이 끝난 뒤 사용자에게 결과를 알려주는 용도로 사용할 수 있습니다.
osascript -e 'tell application "Finder" to activate'
이 명령은 Finder를 실행하거나 이미 실행 중인 Finder 창을 앞으로 가져옵니다. 앱을 빠르게 전환하거나 자동화 과정에서 특정 앱을 먼저 활성화해야 할 때 사용할 수 있습니다.
여러 줄 명령 실행
한 줄로 표현하기 어려운 명령은 -e 옵션을 여러 번 사용할 수 있습니다. osascript 매뉴얼에서는 -e 옵션을 사용해 명령줄에서 스크립트 문장을 지정할 수 있다고 설명합니다.
osascript -e 'tell application "Finder"' -e 'activate' -e 'end tell'
이 명령은 여러 줄 AppleScript를 터미널에서 순서대로 실행합니다. 짧은 테스트에는 편리하지만 명령이 길어질수록 읽기 어려워지므로, 반복적으로 사용할 명령이라면 별도 스크립트 파일로 저장하는 것이 좋습니다.
스크립트 파일 실행
osascript는 텍스트 스크립트 파일이나 컴파일된 스크립트 파일을 실행할 수 있습니다. 공식 매뉴얼에서도 지정된 파일이 일반 텍스트 또는 컴파일된 스크립트일 수 있다고 설명합니다.
osascript sample.applescript
이 명령은 저장된 AppleScript 파일을 실행합니다. 파일로 분리하면 긴 명령을 관리하기 쉽고, Git 같은 버전 관리 도구로 변경 이력을 추적하기도 편합니다.
JavaScript for Automation 사용
osascript는 AppleScript 외에도 OSA 언어를 실행할 수 있습니다. macOS에서는 JavaScript for Automation을 사용할 수 있으며, -l JavaScript 옵션으로 언어를 지정할 수 있습니다.
osascript -l JavaScript -e 'Application("Finder").activate()'
이 명령은 JavaScript for Automation 방식으로 Finder 앱을 활성화합니다. AppleScript 문법이 익숙하지 않은 사용자는 JavaScript 방식이 더 편하게 느껴질 수 있습니다.
다만 macOS 앱 자동화 구조 자체는 동일하게 이해해야 하므로, 실제 자동화 가능 범위는 앱의 스크립팅 지원 여부에 따라 달라집니다.
인수 전달
osascript로 실행하는 스크립트에는 뒤쪽에 인수를 전달할 수 있습니다. 공식 매뉴얼에서는 스크립트 뒤에 오는 인수가 run 핸들러의 direct parameter에 문자열 목록으로 전달된다고 설명합니다.
osascript sample.applescript hello
이 명령은 AppleScript 파일에 값을 전달합니다. 같은 스크립트를 여러 상황에서 재사용할 때 유용하며, 예를 들어 알림 메시지, 파일 경로, 앱 이름 등을 외부에서 전달하도록 구성할 수 있습니다.
보안 권한 확인
osascript를 실행하다 보면 macOS에서 특정 앱이 다른 앱을 제어하려 한다는 권한 요청이 표시될 수 있습니다. 이 팝업은 정상적인 자동화 작업에서도 나타날 수 있으므로 무조건 악성으로 단정하기보다는 실행한 명령과 요청한 앱을 확인해야 합니다.
- 본인이 직접 실행한 명령인지 확인합니다. 터미널에서 방금 실행한 osascript 명령과 팝업에 표시된 앱 이름이 일치하는지 확인하는 것이 좋습니다.
- 인터넷에서 복사한 명령은 먼저 읽어봅니다. 특히 System Events, Finder, shell script,
keystroke,delete,open location같은 동작이 포함된 경우 실제 수행 내용을 확인해야 합니다. - 불필요한 권한은 허용하지 않습니다. 자동화 목적이 분명하지 않거나 어떤 앱이 요청한 것인지 알 수 없다면 거부하는 편이 안전합니다.
- 권한은 macOS 설정에서 다시 관리할 수 있습니다. macOS 버전에 따라 위치는 다를 수 있지만 일반적으로 개인정보 보호 및 보안 영역에서 자동화 또는 손쉬운 사용 권한을 확인할 수 있습니다.
대안 이나 비교
osascript는 macOS 자동화에 적합하지만 모든 작업에 가장 좋은 선택은 아닙니다. 작업의 성격에 따라 Automator, Shortcuts, shell script, Hammerspoon 같은 도구가 더 편할 수 있습니다.
간단한 명령 실행은 osascript가 편리하고, 반복 작업을 시각적으로 구성하려면 Shortcuts나 Automator가 더 접근하기 쉽습니다. 키 입력, 창 제어, 복잡한 단축키 자동화가 필요하다면 별도 자동화 도구를 비교해보는 것이 좋습니다.
| 구분 | osascript | Shortcuts | Automator | Hammerspoon |
|---|---|---|---|---|
| 주요 용도 | 터미널에서 AppleScript와 OSA 스크립트 실행 | macOS와 iOS 중심의 시각적 자동화 | macOS 작업 흐름 자동화 | Lua 기반 macOS 자동화 |
| 사용 난이도 | 중간 | 낮음 | 낮음에서 중간 | 중간에서 높음 |
| 코드 작성 필요 | 필요할 수 있음 | 대부분 불필요 | 일부 필요 | 필요 |
| 터미널 연동 | 좋음 | 일부 가능 | 가능 | 별도 설정 필요 |
| 앱 제어 방식 | AppleScript, OSA | 단축어 액션 | 워크플로우 액션 | Lua API, 시스템 이벤트 |
| 적합한 상황 | 명령줄에서 앱 자동화 실행 | 반복 작업을 버튼처럼 실행 | 파일 처리나 Finder 작업 자동화 | 단축키, 창 관리, 입력 자동화 |
FAQ
osascript와 AppleScript는 같은 개념이 아닙니다. AppleScript는 macOS 자동화에 사용되는 스크립트 언어이고, osascript는 그 AppleScript를 터미널에서 실행하는 명령어입니다.
- 쉽게 말해
AppleScript는 작성하는 코드이고, osascript는 그 코드를 실행하는 도구입니다. - osascript는
AppleScript뿐 아니라 macOS에 설치된 다른 OSA 언어도 실행할 수 있습니다. - 실제 사용에서는
AppleScript를 osascript로 실행하는 경우가 가장 흔하기 때문에 두 용어가 함께 언급되는 일이 많습니다.
osascript 권한 요청이 뜬다고 해서 항상 위험한 것은 아닙니다. macOS에서는 한 앱이나 명령이 다른 앱을 제어하려 할 때 정상적인 자동화 작업에서도 권한 요청이 표시될 수 있습니다.
- 중요한 기준은 본인이 실행한 명령인지, 어떤 앱이 어떤 앱을 제어하려는지 확인하는 것입니다.
- 출처를 알 수 없는 스크립트나 웹에서 복사한 명령이 권한을 요청한다면 허용하지 않는 편이 안전합니다.
- 특히 키 입력 제어, 파일 삭제, 브라우저 조작, 셸 명령 실행이 포함된 스크립트는 내용을 먼저 확인해야 합니다.
osascript는 macOS의 Open Scripting Architecture와 연결된 명령어이므로 Windows에서 같은 방식으로 사용할 수 없습니다. Windows에서는 PowerShell, AutoHotkey, VBScript, Windows Script Host 같은 도구가 비슷한 역할을 할 수 있습니다.
- macOS 앱을 제어하는 목적이라면 osascript를 사용해야 합니다.
- Windows 자동화가 목적이라면
PowerShell이나AutoHotkey를 검토하는 것이 더 적합합니다. - 여러 운영체제에서 공통 자동화를 구성하려면
Python,Node.js, shell script 같은 범용 도구를 함께 고려할 수 있습니다.
명령어가 길어지면 터미널에 직접 입력하는 방식보다 스크립트 파일로 분리해 관리하는 것이 좋습니다. osascript는 텍스트 스크립트 파일과 컴파일된 스크립트 파일을 실행할 수 있으므로 반복 작업을 파일로 저장해두기 좋습니다.
- 짧은 테스트는
osascript -e방식으로 실행합니다. - 반복 사용하거나 줄 수가 많아지는 명령은
.applescript또는.scpt파일로 저장합니다. - 자주 쓰는 파일은 셸 alias, 함수, 단축어, Automator와 연결하면 더 편하게 사용할 수 있습니다.
osascript가 모든 앱의 모든 기능을 제어할 수 있는 것은 아닙니다. 앱이 AppleScript 또는 OSA 기반 자동화를 얼마나 지원하는지에 따라 제어 가능한 범위가 달라집니다.
- Finder처럼 스크립팅 지원이 잘 되어 있는 앱은 비교적 다양한 작업을 자동화할 수 있습니다.
- 일부 앱은 기본적인 실행, 종료, 활성화 정도만 가능할 수 있습니다.
- 앱별로 가능한 명령을 확인하려면 macOS의 스크립트 편집기에서 해당 앱의 사전을 열어보는 방식이 도움이 됩니다.
shell script는 파일 처리, 명령어 실행, 텍스트 처리에 적합하고 osascript는 macOS 앱 제어나 대화상자 표시 같은 작업에 적합합니다. 두 도구를 함께 사용하면 터미널 작업과 macOS 앱 자동화를 연결할 수 있습니다.
- 셸 스크립트에서 작업이 끝난 뒤 osascript로 알림을 띄울 수 있습니다.
- 파일을 처리한 뒤 Finder를 열거나 특정 앱을 활성화할 수 있습니다.
- 반대로
AppleScript안에서do shell script를 사용해 셸 명령을 실행할 수도 있지만, 이 경우 명령어 내용과 권한 범위를 더 주의해서 확인해야 합니다.