AppleScript 또는 쉘 스크립트에서 알림 센터 알림을 어떻게 트리거 할 수 있습니까? 사용할 수있는 내장 명령 또는

필자는 AppleScript 및 필자가 작성한 쉘 스크립트에서 10.8의 알림 센터 기능을 활용할 수 있기를 바랍니다.

AppleScript 또는 쉘 스크립트에서 사용할 수있는 내장 명령 또는 타사 라이브러리가 있습니까?

이상적으로 알림의 유형과 아이콘을 제어 할 수 있지만 스톡 아이콘 (그러나 사용자 정의 텍스트)이있는 기본 배너를 트리거하는 기능조차도 높이 평가 될 것입니다.



답변

Mavericks 이상에서는 AppleScript의 ‘디스플레이 알림’을 사용하여이를 수행 할 수 있습니다.

display notification "Lorem ipsum dolor sit amet" with title "Title"

                          

문자 그대로 간단합니다! 아니 3 번째의 -party 라이브러리 나 앱이 필요하지 다른 시스템에서 사용하기 위해 완전히 휴대용입니다. 상단에 10.9 알림, 중간에 10.10 DP, 하단에 10.10

AppleScript는 / usr / bin / osascript를 사용하여 쉘에서 실행할 수 있습니다.

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

다음을 추가하여 경고를 추가로 사용자 지정할 수도 있습니다.

  • 자막

    ‘자막’다음에 자막이 포함 된 문자열 또는 변수를 추가하십시오.

    display notification "message" with title "title" subtitle "subtitle"

    위의 예는 다음과 같은 알림을 생성합니다.

  • 소리

    ‘소리 이름’다음에 알림과 함께 재생 될 소리 이름을 추가하십시오.

    display notification "message" sound name "Sound Name"

    유효한 사운드 이름은 …에있는 사운드 이름입니다.

    • ~/Library/Sounds
    • /System/Library/Sounds

게시 알림은 명령 줄 스크립트로 래핑 될 수 있습니다. 다음 코드는 터미널에서 실행할 수 있으며 / usr / local / bin에 스크립트를 추가합니다 (존재해야하며 $ PATH에 추가) notify.

cd /usr/local/bin && echo -e "#!/bin/bash\n/usr/bin/osascript -e \"display notification \\\"\$*\\\"\"" > notify && chmod +x notify;cd -

위의 내용을 알리기 위해 추가 할 스크립트입니다.

#!/bin/bash
/usr/bin/osascript -e "display notification \"$*\""

이제 알림을 표시하려면

notify Lorem ipsum dolor sit amet
sleep 5; notify Slow command finished

답변

터미널 알리미

읽어보기에서 :

terminal-notifier는 Mac OS X 10.8에서 사용할 수있는 Mac OS X 사용자 알림을 보내는 명령 줄 도구입니다.

NSUserNotification‘Foundation tool’에서 작동하지 않기 때문에 현재 애플리케이션 번들로 패키지되어
있습니다. 레이더 : // 11956694

이 도구는 파일 시스템 변경으로 인해 실행되는 명령의 상태를 표시하기 위해 Kicker 에서 사용됩니다 . (v3.0.0)

다운로드

코드 서명되고 사용할 준비가 된 사전 빌드 된 바이너리는 다운로드 섹션 에서 사용할 수 있습니다 .

용법

$ ./terminal-notifier.app/Contents/MacOS/terminal-notifier
group-ID sender-name message [bundle-ID]

터미널 알리미를 사용 하려면 앱 번들 에서 바이너리를 호출해야
합니다.

첫 번째 인수는 알림이 속한 ‘그룹’을 지정합니다. ‘그룹’의 경우 이전에 게시 된 알림을 대체하여 하나의 알림 만 표시됩니다. 고유 한 프로세스로 알림 범위를 지정하는 송신자의 프로세스 ID 또는 프로젝트 별 알림 범위를 지정하는 현재 작업 디렉토리.

두 번째 및 세 번째 인수는 알림 자체를 설명하며 각각 ‘제목’과 ‘메시지’입니다. 예를 들어, 알림을 보낸 사람에게 사용자에게 알리기 위해 보낸 사람의 이름을 제목으로 지정할 수 있습니다.

네 번째 및 마지막 인수는 선택 사항입니다. 사용자가 알림을 클릭 할 때 활성화해야하는 응용 프로그램을 지정합니다. 기본적으로 이것은 다른 응용 프로그램을 시작하기 위해 Terminal.app을 활성화하고 대신 응용 프로그램의 번들 식별자를 지정합니다. 예를 들어 Safari.app을 시작하려면 다음을 사용하십시오 com.apple.Safari.


답변

많은 사람들이 버튼 클릭으로 만 해제 할 수있는 알림 팝업을 원하기 때문에 @grgarside의 답변에 메모를 추가하고 싶습니다.

나는 당신을위한 해결책을 찾았습니다.

실제로 작성된 스크립트의 일부 매개 변수가 아닌 시스템 환경 설정의 설정에 의해 제어되었습니다. 이 두 이미지는 모두 설명해야합니다

훌륭한 답변을 위해 @grgarside에게 감사드립니다.


답변

이제 앱 스토어에서 제공되는 Growl2를 사용하여이 작업을 수행 할 수 있습니다 . Growl을 설치하고 “OS X 알림”(스크린 샷)을 활성화하십시오.

또한 명령 줄 도구로 Growl 알림을 보내려면 GrowlNotify를 설치해야합니다. 이 도구는 다운로드 페이지 에서 무료로 다운로드 할 수 있습니다 .

이제 명령 행에서 Growl 알림을 생성 할 수 있으며이 알림은 알림 센터로 전달됩니다. 예를 들면 다음과 같습니다.

growlnotify -n "My App" -m "Hello world"

현재는 응용 프로그램 아이콘을 변경할 수 없습니다.


답변

최근에 터미널 알림을 분기하여 알림 알림 (작업 포함) 및 응답 유형 알림을 표시하는 명령 줄 도구를 작성했습니다.

쉘 스크립트 및 golang 앱과 함께 사용하여 사용자의 대화 형 답변을 얻습니다.

https://github.com/vjeantet/alerter


답변

@grgarside솔루션 은 훌륭하지만 스크립트 삽입에 취약하여 로그 파일 내용 또는 이와 유사한 것을 표시하는 데 사용될 때 주요 보안 문제가 될 수 있습니다.

이것은 더 안전해야합니다.

#!/bin/bash
X="$*" /usr/bin/osascript -e 'display notification system attribute "X"'

답변

Growl은 무료가 아니며 10.8 이전 시스템에서는 터미널 알림을 사용할 수 없으므로 cocoaDialog 를 사용하는 경향이 있습니다 . 무료이며 오픈 소스이므로 스크립트와 함께 배포 할 수도 있습니다.

많은 사용자 화가 필요하지 않은 경우, display notification다른 사람들이 이미 언급했듯이 쉘에서 호출 할 수있는 AppleScript를 사용할 수도 있습니다 .

그러나 AppleScript에는 큰 따옴표가 필요한 것 같습니다. 따라서 변수가 필요한 경우 작동하지 않습니다 .

osascript -e "display notification '$text' with title '$title'" #WRONG

이스케이프 된 큰 따옴표를 사용해야합니다. 이것은 추악 하지만 작동합니다 .

osascript -e "display notification \"$text\" with title \"$title\""