Я пишу сценарий оболочки, и мне нужно создать временный файл с определенным расширением.
Я пробовал
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
Он уязвим для атаки типа «отказ в обслуживании», но я не думаю, что что-то более серьезное.