이름이 4자리이고 필요한 경우 0으로 시작하는 여러 개의 *.txt 파일을 만들려고 합니다. 최대 변수에 도달하면 스크립트를 중지해야 합니다. 이는 /bin/sh(bash 아님)를 사용하고 있지만 어떤 도움이라도 대단히 감사하겠습니다.
#!/bin/sh
NUMBER=0001
MAX=0011
NUMBERFILE=$NUMBER".txt"
while [ $NUMBER -lt $MAX ]; do
printf "\n$NUMBERFILE"
# touch $NUMBERFILE
NUMBER=$(( NUMBER+0001 ))
NUMBERFILE=$NUMBER".txt"
done
printf "\n\nFINISHED!\n\n"
답변1
이 코드에는 셸의 외부 도구가 필요하지 않습니다. 외부 도구가 필요한 경우 seq가 답입니다!
#!/bin/sh
NUMBER=1
MAX=11
while [ $NUMBER -lt $MAX ]; do
file=$(printf '%04d.%s\n' "$NUMBER" "txt")
printf '%s\n' "Creating" "$file"
touch "$file"
NUMBER=$(( NUMBER+1 ))
done
printf "\n\nFINISHED!\n\n"
>
빈 파일을 만들고 싶다면 touch를 .
답변2
#!/bin/sh
MIN=1
MAX=11
PADDING=4
for i in $(seq -f "%0${PADDING}g" $MIN $MAX); do
file=${i}.txt
printf "$file\n"
touch $file
done
printf "\n\nFINISHED!\n\n"
답변3
또한 시도
seq -f">%04g.txt" "$MIN" "$MAX" | . /dev/stdin