web-dev-qa-db-ja.com

Macターミナルのポップアップ/アラートを作成するにはどうすればよいですか? Applescript?

カスタムテキストを表示するものは何でも、プログラムにアラート、通知を表示させることができます。これはどのように行われますか?また、変数を設定するいくつかのボタンを持つものを作ることは可能ですか?

バッチと同様:echo msgbox""<a.vbs&a.vbs

95
JShoe

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ヒント をご覧ください。

193
Anne

通知センターを備えたMac OS Xバージョンを使用している場合は、 terminal-notifier gemを使用できます。最初にインストールします(Sudoが必要な場合があります):

gem install terminal-notifier

そして単純に:

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

このOS Xデイリーポスト も参照してください。

59
Enrico Carlesso

このコマンドを使用して、端末から通知センター通知をトリガーします。

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

これにより、フォーカスが以前のアプリケーションに戻り、回答が空の場合はスクリプトが終了します。

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 Editorで標準追加の辞書を開くか、 AppleScript Language Guide を参照してください。

6
Lri

そして私の15セント。 macターミナルなどの1つのライナーは、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"'

より多くのコマンドを組み合わせるためのインスピレーションのボーナス例。これにより、メッセージに対してMACがスタンバイスリープ状態になります:)その後、Sudoログインが必要になり、2時間の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
2

似たような質問と回答は次の場所にあります: https://superuser.com/questions/246353/how-to-make-the-terminal-do-a-pop-up-alert-in-osx =

1
Mark

here であるこれを解決するスクリプトを作成しました。このために追加のソフトウェアは必要ありません。インストール:
brew install akashaggarwal7/tools/tsay
使用法:
sleep 5; tsay

気軽に貢献してください!

0
Akash Agarwal