簡體   English   中英

如何使用 Automator 偵聽 Mac 通知並對其采取行動?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM