私はXenial Ubuntuを使用しています。バッシュバージョンはGNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
このエラーが発生します。mktemp: too few X's in template
私のシェルスクリプトがこのコマンドを実行したときmktemp /tmp/1556580619403-0/duplicate.XXXXXXX.BABj9f0X1bg_work_DADYj9GphRM2_page0_preview.png
ファイル名は実際には関数内で次のように構成されます。
myfunction() {
local filename
filename=$0
mktemp /tmp/1556580619403-0/duplicate.XXXXXXX.${filename}
}
2番目の発生はX
明らかに問題の原因です。
X
この問題を解決するためのスイッチや他の方法(ファイル名の2番目の項目を置き換えること以外)がありますか?
答え1
mktemp
変えるテンプレートの最後のXを実行する:
テンプレートの最後の「X」は英数字に置き換えられます。
最も簡単なオプションは、次を使用することです。
mktemp "/tmp/1556580619403-0/duplicate.$filename.XXXXXXX"
元のファイル名で終わる必要がある場合は、次の--suffix
オプションを使用してください。
mktemp /tmp/1556580619403-0/duplicate.XXXXXXX --suffix ".$filename"