所以我有一個shell腳本可以執行一些長操作,並且當他們這樣做時,我只想輸出一系列的點(。)直到完成,以顯示它是運行。Bash:使用pkill來跟蹤刪除目錄的進度
我使用pkill來測試進程正在運行,只要它輸出另一個點。這對我幾乎每個需要它的地方都非常有效。然而,這個過程的一部分涉及到刪除一個目錄,那就是它破壞的地方。
這裏是我的代碼:
ERROR=$(rm -rf "$1" 2>&1 >/dev/null)
while pkill -0 rm; do
printf "."
sleep 1
done
printf "\n"
我使用pkill的測試過程RM,但是當我做,這是我的輸出獲得:
pkill: signalling pid 192: Operation not permitted
pkill: signalling pid 326: Operation not permitted
.pkill: signalling pid 61: Operation not permitted
我的腳本運行起來直到包括文件夾刪除在內的點輸出代碼,然後它停止並且只是一遍又一遍地輸出這三行,直到我強行終止進程。
任何人有任何想法是怎麼回事?我覺得它不能與RM運作一起工作,但我不確定。
在此先感謝。
有些進程與'rm'匹配,你沒有權限發送信號。例如。在我的系統上:'pkill -0 rm'給出 'pkill:kill pid 1394失敗:操作不允許'和'ps -aux | grep rm'顯示'dirmngr'('rm'與子串匹配)。 –