필자는 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 앱과 함께 사용하여 사용자의 대화 형 답변을 얻습니다.
답변
@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\""