저는 Xenial 우분투를 사용하고 있습니다. 배쉬 버전은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}
}
두 번째 발생은 X
분명히 문제의 원인입니다.
X
이 문제를 해결할 수 있는 스위치나 다른 방법(파일 이름에서 두 번째 항목을 바꾸는 것 외에)이 있습니까 ?
답변1
mktemp
바꾸다템플릿의 마지막 X 실행:
템플릿의 마지막 "X"는 영숫자 문자로 대체됩니다.
가장 쉬운 옵션은 다음을 사용하는 것입니다.
mktemp "/tmp/1556580619403-0/duplicate.$filename.XXXXXXX"
원래 파일 이름으로 끝나야 하는 경우 다음 --suffix
옵션을 사용하십시오.
mktemp /tmp/1556580619403-0/duplicate.XXXXXXX --suffix ".$filename"