Удалить сам скрипт - PullRequest
       1

Удалить сам скрипт

1 голос
/ 22 февраля 2012

Я бы хотел, чтобы мой скрипт автоматически удалялся, так как его работа завершена.Я добавил строку ниже в конец моего скрипта:

unlink($0);

По некоторым причинам это не работает.Не могли бы вы посоветовать, что мне делать?Возможно, есть другой подход, или я мог бы добавить сообщение об ошибке, чтобы выяснить, почему оно не удалено?

Спасибо.

Ответы [ 3 ]

4 голосов
/ 22 февраля 2012

Я не знаю, почему ты не можешь. Это работает на моей машине. Возможно, ваша файловая система блокирует файл во время его работы.

И, пожалуйста, попробуйте это:

exec "rm -f '$0'";

, который заменяет текущий процесс Perl на rm. Это должно освободить ваш скрипт и удалить его.

1 голос
/ 22 февраля 2012

в конце вашего скрипта:

system("sh -c 'sleep 1; rm -f $0' &");

Немного хак, но зачем вам удалять свой скрипт?Конечно, это означает, что что-то создало это, почему бы не сделать так, чтобы создатель тоже удалил это?

0 голосов
/ 22 февраля 2012

Вы не можете этого сделать. Ваш скрипт все еще работает, поэтому файл будет использоваться, поэтому он не может удалить себя.

Вам нужно вызвать внешний скрипт, чтобы удалить первый скрипт после его смерти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...