Bayangkan saya punya skrip foo
. Ini harus dijalankan sekali ketika pengguna login dan tidak diperlukan setelah menjalankan yang sukses.
Pertanyaan saya: Apakah aman untuk menghapus file skrip dari dalam skrip?
Misalnya:
#!/bin/bash
# do something
...
# if successful
rm /path/to/foo
exit 0
bash
shell-script
executable
rm
htorque
sumber
sumber
#!/bin/bash -e
untuk memastikan bahwa file skrip dihapus hanya jika tidak ada yang salah.exec rm /path/to/foo
.Jawaban:
Aman untuk menghapus file shell saat menjalankannya, karena penangan file tidak terpengaruh oleh (kembali) memindahkan file yang sesuai.
Untuk informasi lebih lanjut, lihat di sini .
sumber
rm <it-self>
tidak akan berhasil pada HP-Ux.unlink
mungkin gagal denganETXTBUSY
. (Anehnya, "prosedur murni" dan "teks bersama" tidak didefinisikan dalam spesifikasi; AFAIK berarti komponen dari program yang dapat dieksekusi: yang dapat dieksekusi itu sendiri atau perpustakaan yang digunakannya). Semua kesatuan utama selain dari HP-UX memungkinkan yang dapat dieksekusi untuk diubah namanya dan dibatalkan tautannya.exec rm /path/to/foo
.Saya selalu gugup tentang hal ini sehingga saya melakukannya:
Sebagai alternatif, Anda dapat berantai ke skrip sementara:
sumber
exec rm /path/to/shell/script