[英]How to listen for, and act upon, a Mac notification using Automator?
是否可以在 Mac 上監聽特定通知並使用 Automator 對其采取行動?
我經常使用一個運行后台作業的應用程序,然后在完成后發送通知。 該應用程序在工作完成后保持打開狀態,因此我想在收到通知時使用 Automator 退出該應用程序。
如果在 Automator 中不可能,我還有其他方法可以做到這一點嗎?
更多上下文:該應用程序實際上是由使用 Automator 創建的文件夾操作啟動的。 它檢測何時插入特定 SD 卡並在該 SD 卡上運行備份應用程序。 所以也許我可以添加一些可以檢測通知的文件夾操作工作流程?
雖然在 macOS 中查詢包含通知的 sqlite 數據庫當然是可能的,但在我看來,這似乎是一條不必要的復雜路線,我會首先嘗試以下...
在您的工作流程中,在最后添加一個“運行 Shell 腳本”操作,包含如下內容:
while [ $(ps -e | grep "[N]ameOfBackgroundProcess" | wc -l) -gt 0 ]; do
sleep 3
done
killall "NameOfAppToQuit" 1&>2 /dev/null
while 循環檢查后台作業是否仍在運行。
ps -e
列出所有正在運行的進程。
grep "[N]ameOf..."
獲取包含名稱的所有行。 第一個字母周圍的括號將 grep 進程本身排除在輸出之外。
wc -l
計算行數。
-gt 0
檢查數字是否大於零。
當循環完成時,這意味着進程已經退出,所以我們使用killall
退出應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.