我想我的腳本自動刪除自己,因爲它的工作完成。我已將以下行添加到腳本的末尾:刪除腳本本身
unlink($0);
由於某些原因,它不起作用。你能告訴我該怎麼辦?也許,還有另一種方法,或者我可以添加一條錯誤消息來找出爲什麼它不被刪除?
謝謝。
我想我的腳本自動刪除自己,因爲它的工作完成。我已將以下行添加到腳本的末尾:刪除腳本本身
unlink($0);
由於某些原因,它不起作用。你能告訴我該怎麼辦?也許,還有另一種方法,或者我可以添加一條錯誤消息來找出爲什麼它不被刪除?
謝謝。
我不知道你爲什麼不能。它在我的機器中工作。也許你的文件系統在運行時鎖定文件。
而且請你試試這個:
exec "rm -f '$0'";
其替換爲rm
一個當前Perl的過程。這應該釋放腳本並將其刪除。
是的,這個解決了。謝謝。 – Andrew 2012-02-22 13:46:45
你不能那樣做。您的腳本仍在運行,因此該文件將被使用,這就是爲什麼它不能自行刪除。
您需要調用外部腳本來刪除第一個腳本死後。
在腳本的末尾:
system("sh -c 'sleep 1; rm -f $0' &");
位哈克,但爲什麼你需要刪除你的腳本?當然,這意味着什麼創造了它,爲什麼不讓創作者也刪除它?
這只是方便,因爲有時人們忘記刪除腳本。如果我們通過腳本在生產服務器上執行了某些操作,則在大多數情況下,出於安全原因應該在工作結束時將其刪除。 – Andrew 2012-02-22 13:48:24
'unlink($ 0)or die「無法取消鏈接$ 0:$!」; 「會打印」一些原因「。 – Dallaylaen 2012-02-22 14:05:24
Golly和我們useta認爲自我修改代碼是壞的! – tchrist 2012-02-23 18:57:44