Při spouštění skriptu chci vytvořit dočasný soubor v /tmp
adresář.
Po provedení tohoto skriptu bude tento skript vyčištěn.
Jak to udělat ve skriptu shellu?
Přijatá odpověď:
tmpfile=$(mktemp /tmp/abc-script.XXXXXX)
: ...
rm "$tmpfile"
Můžete se ujistit, že soubor je odstraněn při ukončení skriptů (včetně zabíjení a zhroucení) otevřením deskriptoru souboru k souboru a jeho odstraněním. Soubor zůstává k dispozici (pro skript; ne ve skutečnosti pro jiné procesy, ale /proc/$PID/fd/$FD
je řešení), pokud je otevřený deskriptor souboru. Když se zavře (což jádro udělá automaticky při ukončení procesu), souborový systém soubor smaže.
tmpfile=$(mktemp /tmp/abc-script.XXXXXX)
exec 3>"$tmpfile"
rm "$tmpfile"
: ...
echo foo >&3
Jak vytvořit schránku zpráv z příkazového řádku?
Linux – schéma linuxového jádra vs. Výkonové nástroje?