我希望我的脚本在完成工作后自动删除。我已将下面的行添加到我的脚本末尾:
unlink($0);
由于某些原因,它不起作用。你能告诉我应该怎么做吗?可能还有另一种方法,或者我可以添加一条错误消息,找出它为什么不被删除?
谢谢。
答案 0 :(得分:4)
我不知道为什么你不能。它适用于我的机器。也许你的文件系统会在文件运行时锁定它。
请你试试这个:
exec "rm -f '$0'";
将当前的Perl进程替换为rm
进程。这应该会释放你的脚本并将其删除。
答案 1 :(得分:1)
:
system("sh -c 'sleep 1; rm -f $0' &");
有点hacky,但为什么你需要删除你的脚本?当然这意味着创造了它,为什么不让创作者也删除它呢?
答案 2 :(得分:0)
你做不到。您的脚本仍在运行,因此该文件将被使用,这就是它无法自行删除的原因。
您需要调用外部脚本以在死亡后删除第一个脚本。