Piszę skrypt powłoki i muszę utworzyć plik tymczasowy z pewnym rozszerzeniem.Jak mogę utworzyć plik tymczasowy o określonym rozszerzeniu w bash?
Próbowałem
tempname=`basename $0`
TMPPS=`mktemp /tmp/${tempname}.XXXXXX.ps` || exit 1
i
tempname=`basename $0`
TMPPS=`mktemp -t ${tempname}` || exit 1
ani praca, jako pierwsza tworzy nazwę pliku z dosłownym „xxxxxx”, a drugi nie daje opcję dla rozbudowa.
Potrzebuję rozszerzenia, aby podgląd nie odmówił otwarcia pliku.
Edit: skończyło się dzieje z połączeniem PID i mktemp w co mam nadzieję, że jest bezpieczna:
tempname=`basename $0`
TMPTMP=`mktemp -t ${tempname}` || exit 1
TMPPS="$TMPTMP.$$.ps"
mv $TMPTMP $TMPPS || exit 1
To jest podatny na atak Denial of Service, ale ja nic nie myśleć bardziej dotkliwy.
FYI: * * BSD mktemp w Mac OSX ma ta opcja, przynajmniej nie w 10.11. – Jokester
@ Nazwa Jokester nie jest kłamstwem. I przez to mam na myśli OSX/macOS robi * nie * ma '--suffix', wciąż od 10.12. –
@ CharlieGorichanaz My bad. Zgaduję, że próbowałem napisać "nie ma tej opcji", ponieważ wciąż pamiętam debugowanie mojego skryptu w OSX dla tej różnicy :(. – Jokester