Imagina que tengo un guión foo
. Debe ejecutarse una vez cuando el usuario inicia sesión y no es necesario después de una ejecución exitosa.
Mi pregunta: ¿es seguro eliminar el archivo de script desde el script?
P.ej:
#!/bin/bash
# do something
...
# if successful
rm /path/to/foo
exit 0
bash
shell-script
executable
rm
htorque
fuente
fuente
#!/bin/bash -e
para asegurarse de que el archivo de secuencia de comandos se elimine solo si nada sale mal.exec rm /path/to/foo
.Respuestas:
Es seguro eliminar el archivo shell mientras lo ejecuta, ya que los manejadores de archivos no se ven afectados por (re) mover el archivo correspondiente.
Para más información, ver aquí .
fuente
rm <it-self>
, no tendrá éxito en HP-Ux.)unlink
puede fallar conETXTBUSY
. (Curiosamente, "procedimiento puro" y "texto compartido" no están definidos en la especificación; AFAIK significan un componente de un programa ejecutable: el propio ejecutable o una biblioteca que usa). Todas las unidades principales que no sean HP-UX permiten renombrar y desvincular ejecutables.exec rm /path/to/foo
.Siempre estaba nervioso por esto, así que hice:
Alternativamente, puede encadenar a un script temporal:
fuente
exec rm /path/to/shell/script