Mac 터미널 팝업 / 경고는 어떻게 만듭니 까? Applescript?


107

내 프로그램이 내 사용자 지정 텍스트를 표시하는 모든 것을 경고, 알림을 표시하도록하고 싶습니다. 어떻게하나요? 또한 변수를 설정하는 여러 개의 버튼으로 하나를 만들 수 있습니까?

배치와 유사 : echo msgbox""<a.vbs&a.vbs

답변:


213

사용 osascript. 예를 들면 :

osascript -e 'tell app "Finder" to display dialog "Hello World"' 

"Finder"를 원하는 앱으로 대체합니다. 해당 앱이 백그라운드 인 경우 대화 상자도 백그라운드에 나타납니다. 항상 포 그라운드에 표시하려면 '시스템 이벤트'를 앱으로 사용하세요.

osascript -e 'tell app "System Events" to display dialog "Hello World"'

Mac OS X 힌트 에 대해 자세히 알아보십시오 .


응용 프로그램을 앱으로 줄여도 되나요?
JShoe 2011

AppleScript 엔진이 자동으로 대체합니다. AppleScript 편집기에서 따옴표 사이에 줄을 붙여 넣기 만하면 실행을 누르면 실행 전에 앱이 자동으로 응용 프로그램으로 바뀝니다.
Anne

또 다른 타이핑 세이버 : "end if", "end repeat"등은 필요하지 않습니다. "end"만해도 괜찮으며 AppleScript가 두 번째 단어를 삽입합니다.
Nicholas Riley 2011

7
"취소"버튼을 원하지 않고 "확인"버튼 만 원하는 경우 {dialog}를 {alert}로 바꿉니다.
Bart B

1
13havik, 글쎄, 그것이 오래된 주제라는 것을 알고 있지만, 그렇습니다. :) 그러나 로그인이 필요합니다. 예를 들어 터미널 ssh로. 그런 다음 osascript -e 'display dialog "Hello!"'를 호출합니다.
Alex Reds

61

이 명령을 사용하여 터미널에서 알림 센터 알림을 트리거합니다.

osascript -e 'display notification "Lorem ipsum dolor sit amet" with title "Title"'

61

알림 센터가있는 Mac OS X 버전을 사용하는 경우 터미널 알림 젬을 사용할 수 있습니다 . 먼저 설치하십시오 (필요할 수 있음 sudo).

gem install terminal-notifier

그리고 간단히 :

terminal-notifier -message "Hello, this is my message" -title "Message Title"

이 OS X Daily post를 참조하십시오 .


5
이것은 단순히 오래된 osascript보다 훨씬 낫습니다.
Jonny 2011

이것은 10.7.5 (Lion)에서 작동하지 않는 것으로 보이며 알림 센터가없는 것으로 보입니다.
Norman H

4
brew install terminal-notifier양조를 선호하는 경우에도 작동합니다.
gklka

5
PSA : Mavericks 이상에서는 필요하지 않습니다 . 아래 Pradeep의 답변에서 언급 된 osascript의 디스플레이 알림을 사용하십시오 .
alexchandel

7

이렇게하면 이전 응용 프로그램으로 포커스가 복원되고 답변이 비어있는 경우 스크립트가 종료됩니다.

a=$(osascript -e 'try
tell app "SystemUIServer"
set answer to text returned of (display dialog "" default answer "")
end
end
activate app (path to frontmost application as text)
answer' | tr '\r' ' ')
[[ -z "$a" ]] && exit

시스템 이벤트에 대화 상자를 표시하도록 지시 한 경우 이전에 실행되지 않았 으면 약간의 지연이있을 수 있습니다.

디스플레이 대화 상자에 대한 문서는 AppleScript 편집기에서 표준 추가 사전을 열거 나 AppleScript 언어 안내서를 참조하십시오 .


4

알림에 자막 , 제목소리 추가 :

애플 스크립트 :

display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"

단말 / 떠들썩한 파티osascript:

osascript -e 'display notification "Notification text" with title "Notification Title" subtitle "Notification sub-title" sound name "Submarine"'

경고 대신 표시 할 수 있습니다 통지

부제목이나 소리를 강하게 받아들이지 않습니다.

애플 스크립트 :

display alert "Alert title" message "Your message text line here."

단말 / 떠들썩한 파티osascript:

osascript -e 'display alert "Alert title" message "Your message text line here."'

경고 줄 다음에 소리재생하기 위해 bash 에 줄을 추가하십시오 .

afplay /System/Library/Sounds/Hero.aiff

AppleScript에 동일한 줄을 추가 하여 쉘 스크립트 가 작업을 수행하도록합니다.

do shell script ("afplay /System/Library/Sounds/Hero.aiff")

여기에서 선택할 수 있는 macOS 내장 사운드 목록 .

터미널 및 애플 스크립트 알림 에 대한 편리한 기사에서 의역 .


3

그리고 내 15 센트. 맥 터미널 등을위한 하나의 라이너는 MIN =을 무엇이든 그리고 메시지로 설정합니다.

MIN=15 && for i in $(seq $(($MIN*60)) -1 1); do echo "$i, "; sleep 1; done; echo -e "\n\nMac Finder should show a popup" afplay /System/Library/Sounds/Funk.aiff; osascript -e 'tell app "Finder" to display dialog "Look away. Rest your eyes"'

더 많은 명령을 결합하기위한 영감을주는 보너스 예제입니다. 이것은 메시지에 대해 맥도 대기 절전 모드로 전환됩니다 :) sudo 로그인이 필요합니다. 두 시간 동안 60 * 2만큼 곱하기도 마찬가지입니다.

sudo su
clear; echo "\n\nPreparing for a sleep when timers done \n"; MIN=60*2 && for i in $(seq $(($MIN*60)) -1 1); do printf "\r%02d:%02d:%02d" $((i/3600)) $(( (i/60)%60)) $((i%60)); sleep 1; done; echo "\n\n Time to sleep  zzZZ";  afplay /System/Library/Sounds/Funk.aiff; osascript -e 'tell app "Finder" to display dialog "Time to sleep zzZZ"'; shutdown -h +1 -s


0

나는 여기에 이것을 해결하기 위해 스크립트를 만들었습니다 . 이를 위해 추가 소프트웨어가 필요하지 않습니다. 설치 :
brew install akashaggarwal7/tools/tsay
사용법 :
sleep 5; tsay

자유롭게 기여하십시오!


9
"추가 소프트웨어가 필요하지 않습니다. 그냥 설치 만하면됩니다."그것은 추가 소프트웨어입니다.
PRS

@PRS는 소프트웨어가 아니라 이미 macOS에서 사용할 수있는 명령을 실행하는 스크립트입니다.
Akash Agarwal 2017

2
그렇다면 왜 brew와 스크립트를 설치해야합니까? 무슨 말인지 알 겠어요? ;)
PRS

그러나 나는 당신에게 say 명령을 소개 한 것에 대한 공로를 인정할 것입니다 ... 나는 오늘 새로운 것을 배웠습니다! lol
PRS

@PRS 당신이 명령을 알게 된 것을 기쁘게 생각합니다. 귀하의 다른 의견에 대해 나는 당신이 개발자라면 당신이 사용하는 것이 매우 일반적이라고 생각합니다. 그리고 스크립트 설치에 관해서는 스크립트의 소스를 열고 파일에 로컬로 복사 / 붙여 넣기하고 chmod + x 실행하여 자유롭게 실행하십시오;)
Akash Agarwal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.