命令運行完成後,是否可以強制終端成爲活動窗口?命令完成後有沒有辦法讓終端前面?
運行冗長的命令或腳本時,這將是非常有用的以某種方式通知,當他們完成。
或者,可以通過我的MacOS每次發送通知的命令完成?
命令運行完成後,是否可以強制終端成爲活動窗口?命令完成後有沒有辦法讓終端前面?
運行冗長的命令或腳本時,這將是非常有用的以某種方式通知,當他們完成。
或者,可以通過我的MacOS每次發送通知的命令完成?
在MacOS 10.8+,AppleScript的支持(具有聲音可選地)顯示通知的display notification
命令。
下面是一個例子,使用sleep 3
代表長時間運行shell命令:
sleep 3; osascript -e 'display notification "Done!" with title "Long-running shell command" sound name "Hero"'
你可以在一個shell函數包裝這個功能,並把它添加到您的~/.zshrc
文件:
notifyWhenDone() {
local msg=${1:-'Done!'} title=${2:-'Long-running shell command'} sound=${3:-'Hero'}
osascript -e 'display notification "'"$msg"'" with title "'"$title"'" sound name "'"$sound"'"'
}
注意:要使其完全健壯,您必須確保可選參數$1
,$2
和$3
的內容不會中斷AppleScript命令。
有了這個功能:
sleep 3; notifyWhenDone
如果你也想激活完成Terminal.app
,附加以下選項傳遞給osascript
的參數:
-e 'activate application "Terminal"'
。
感謝您的迅速回復! 編輯使它完美。 – tehp