bash脚本语言使用循环打印数字列表

时间:2015-08-30 18:07:43

标签: linux bash loops

我想在文本文件(numberlist.txt)中打印,使用bash,所有数字从000000到999999,每行一个数字。例如:

000000
000001
000002

...

999999

这是我的代码:(当我没有发动的时候)

#!/bin/bash 
CONT=0
MAX_NUM=1000000
FILE_NAME=numberlist.txt

#While counter CONT is lower than MAX_NUM (-lt, “lower #than”) the loop is executed
until [ $CONT -lt $MAX_NUM ]; do
     printf "%000002d\n" $CONT > $FILE_NAME
     #CONT= CONT + 1
     let CONT+=1
done

我做错了什么?

3 个答案:

答案 0 :(得分:1)

不是打开和关闭文件一百万次,而是通过重定向循环的输出而不是printf来执行一次:

#!/bin/bash 
CONT=0
MAX_NUM=1000000
FILE_NAME=numberlist.txt

while [ $CONT -lt $MAX_NUM ]; do
     printf "%06d\n" $CONT 
     #CONT= CONT + 1
     let CONT++
done > $FILE_NAME

答案 1 :(得分:0)

将评论从pasaba por aqui转换为答案。:

#!/bin/bash 
CONT=0
MAX_NUM=1000000
FILE_NAME=numberlist.txt

#While counter CONT is lower than MAX_NUM (-lt, “lower #than”) the loop is executed
while [ $CONT -lt $MAX_NUM ]; do
     printf "%06d\n" $CONT >>$FILE_NAME
     #CONT= CONT + 1
     let CONT++
done

答案 2 :(得分:0)

如果你至少使用bash版本4,你可以做到

echo -en {000000..999999}'\n' > numberlist.txt

无需循环。 -en\n是将每个数字放在自己的行上。