我想我的脚本自动删除自己,因为它的工作完成。我已将以下行添加到脚本的末尾:删除脚本本身
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