我是bash脚本的新手,我需要提供一些启动条件并在其上循环并将其打印到txt文件
e.g。 (这是我在最后abc从0到1000所需要的)
var pre = 'abc'
var start = '0000'
var stop = '1000'
print_to = file.txt
文本文件的内容应如下所示:
abc0000
abc0001
abc0002
...
abc0100
...
abc1000
我已经尝试了以下但是它不起作用......任何想法我该如何改进它?
#!/usr/bin/env bash
set -uo pipefail
pre="abc"
start="0000"
stop="1000"
file="myfile.txt"
for i in "$pre"+="$start" += 1
do
echo "$pre"+"$start" + 1 >> $file
done
答案 0 :(得分:2)
您可以使用seq -f来实现您的目标。
使用%04
会将您的值填充最多4 0
s。
#!/usr/bin/env bash
set -uo pipefail
pre="abc"
start=0
stop=1000
file="myfile.txt"
for i in $(seq -f "%04g" $start $stop)
do
echo $pre$i >> $file
done
答案 1 :(得分:2)
这是你问题的“调整”答案。
pre="abc"
start="0000"
stop="1000"
file="myfile.txt"
i=0
while [[ $i -le 1000 ]]
do
printf "%s%04d\n" "$pre" "$i"
let i=i+1
done > "$file"
这是创建该文件的最简单方法:
printf "%s\n" abc{0000..1000} > myfile.txt