Bash當最近的程序是“notify-send”時,為什麼我不能在 Bash 中使用帶有參數擴展的
當最近的程序是“notify-send”時,為什麼我不能在 Bash 中使用帶有參數擴展的 kill $!
?
根據 Bash:特殊參數:
($!) 擴展為最近放入後台的作業的程序 ID,無論是作為非同步命令執行還是使用 bg 內置
我可以按如下方式使用它:
$ leafpad & [2] 3962 $ kill $!
這有效並殺死了最近的程序(例如
leafpad
),但notify-send
它似乎不起作用:$ notify-send Hello & [2] 4052 $ kill $! bash: kill: (4052) - No such process
我必須使用
killall notify-osd
才能殺死它。所以,我想知道為什麼
kill $!
不工作notify-send
?殺死這樣一個過程的正確方法是什麼?注意:我知道我可以指定超時,但這是一個不同的問題。
notify-send
不會執行任何時間長度:它啟動、連接到notify-osd
、傳遞要顯示的通知消息,然後終止。當您執行該
kill
命令時,notify-send
它已經自行終止。您看到的通知由 提供notify-osd
。