Shell命令循环变量并打印到文件

时间:2017-09-09 18:59:52

标签: linux bash shell

我是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

2 个答案:

答案 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