mktemp
não é um comando padrão e difere muito em termos de funcionalidade e opções entre sistemas (se o sistema ainda tiver um comando mktemp). A única maneira de saber o que seu mktemp
aceita é ler seu manual no sistema em questão.
De qualquer forma, você não precisa da extensão .gif
para dizer ao imagemagick que o resultado deve ser um arquivo gif.
$ tmpfile=$(mktemp /tmp/pre_XXXXXX)
$ convert rose: "gif:$tmpfile"
$ file "$tmpfile"
/tmp/pre_MDDsuZ: GIF image data, version 89a, 70 x 46