名前が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