[英]bash scripting language print a list of numbers using a loop
我想使用bash在文本文件(numberlist.txt)中打印所有从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
我究竟做错了什么?
不用打开和关闭文件一百万次,而是通过重定向循环的输出而不是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
将来自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
如果您至少使用bash版本4,则可以轻松完成操作
echo -en {000000..999999}'\n' > numberlist.txt
无需循环。 -en
和\\n
将每个数字放在自己的行上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.