Imagine que eu tenho um script foo
. Ele deve ser executado uma vez quando o usuário efetuar login e não for necessário após uma execução bem-sucedida.
Minha pergunta: É seguro remover o arquivo de script de dentro do script?
Por exemplo:
#!/bin/bash
# do something
...
# if successful
rm /path/to/foo
exit 0
bash
shell-script
executable
rm
htorque
fonte
fonte
#!/bin/bash -e
para garantir que o arquivo de script seja removido apenas se nada der errado.exec rm /path/to/foo
.Respostas:
É seguro remover o arquivo do shell enquanto o executa, pois os manipuladores de arquivos não são afetados pela (re) movimentação do arquivo correspondente.
Para mais informações, clique aqui .
fonte
rm <it-self>
não terá sucesso no HP-UX.unlink
pode falharETXTBUSY
. (Estranhamente, "procedimento puro" e "texto compartilhado" não são definidos na especificação; AFAIK significam um componente de um programa executável: o próprio executável ou uma biblioteca que ele usa). Todos os principais departamentos, exceto o HP-UX, permitem que os executáveis sejam renomeados e desvinculados.exec rm /path/to/foo
.Eu estava sempre nervoso com isso, então eu fiz:
Como alternativa, você pode encadear um script temporário:
fonte
exec rm /path/to/shell/script