Я пишу сценарий оболочки, и я должен создать временный файл с определенным расширением.
Я попробовал
tempname=`basename $0`
TMPPS=`mktemp /tmp/${tempname}.XXXXXX.ps` || exit 1
и
tempname=`basename $0`
TMPPS=`mktemp -t ${tempname}` || exit 1
никакая работа, поскольку первое создает имя файла с литералом "XXXXXX" и вторым, не дает опцию для расширения.
Мне нужно расширение так, чтобы предварительный просмотр не отказывался открывать файл.
Править: Я закончил тем, что шел с комбинацией pid и mktemp в том, что я надеюсь, безопасно:
tempname=`basename $0`
TMPTMP=`mktemp -t ${tempname}` || exit 1
TMPPS="$TMPTMP.$$.ps"
mv $TMPTMP $TMPPS || exit 1
Это уязвимо для атаки "отказ в обслуживании", но я не думаю ничто более серьезное.