mktemp Ubuntu 12.02 / Mint 9 Isadoraの他の動作

mktemp Ubuntu 12.02 / Mint 9 Isadoraの他の動作

Bashスクリプトでは、ImageMagickの変換コマンドを使用していくつかの画像処理を実行しています。

書き込み変換用の一時的なgifファイルを生成します。

変換では、ターゲットファイルがgifファイルであることがわかるように、ファイル拡張子は.gifでなければなりません。

Ubuntu 12.04では、以下が正常に動作します。

mktemp /tmp/pre_XXXXXXXXXX.gif

ただし、Mint 9 Isadoraでは次のエラーが発生します。

mktemp: too few X's in template 

Xをいくら押しても同じエラーが発生します。これは、「.gif」サフィックスを削除した場合にのみ解決されます。

なぜそんなことですか?ミントはUbuntuベースではありませんか?

答え1

mktemp標準コマンドではなく、機能とオプションはシステムによって大きく異なります(システムにmktempコマンドがある場合)。あなたがmktemp受け入れるものを知る唯一の方法は、そのシステムのマニュアルを読むことです。

.gifとにかく、結果がgifファイルでなければならないことをimagemagickに知らせるために拡張は必要ありません。

$ tmpfile=$(mktemp /tmp/pre_XXXXXX)
$ convert rose: "gif:$tmpfile"
$ file "$tmpfile"
/tmp/pre_MDDsuZ: GIF image data, version 89a, 70 x 46

関連情報