我正在尝试创建多个 *.txt 文件,其名称为 4 位数字且需要时以零开头。当达到最大变量时,脚本需要停止。这是使用 /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
此代码不需要 shell 中的任何外部工具,如果您需要外部工具,那么 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"
>
如果您只想创建一个空文件,则可以将触摸替换为。
答案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