Stellen Sie sich vor, ich habe ein Skript foo
. Es sollte einmal ausgeführt werden, wenn sich der Benutzer anmeldet, und wird nach einer erfolgreichen Ausführung nicht benötigt.
Meine Frage: Ist es sicher, die Skriptdatei aus dem Skript zu entfernen?
Z.B:
#!/bin/bash
# do something
...
# if successful
rm /path/to/foo
exit 0
bash
shell-script
executable
rm
htorque
quelle
quelle
#!/bin/bash -e
damit sicherstellen, dass die Skriptdatei nur entfernt wird, wenn nichts schief geht.exec rm /path/to/foo
.Antworten:
Es ist sicher, die Shell-Datei während der Ausführung zu entfernen, da Dateihandler nicht vom (erneuten) Verschieben der entsprechenden Datei betroffen sind.
Weitere Informationen finden Sie hier .
quelle
rm <it-self>
wird unter HP-Ux nicht erfolgreich sein.unlink
kann fehlschlagen mitETXTBUSY
. (Seltsamerweise sind "reine Prozedur" und "gemeinsam genutzter Text" in der Spezifikation nicht definiert. AFAIK bedeutet eine Komponente eines ausführbaren Programms: die ausführbare Datei selbst oder eine Bibliothek, die sie verwendet.) Alle wichtigen Unices außer HP-UX ermöglichen das Umbenennen und Aufheben der Verknüpfung von ausführbaren Dateien.exec rm /path/to/foo
.Ich war immer nervös, also tat ich:
Alternativ können Sie ein temporäres Skript verketten:
quelle