簡體   English   中英

bash腳本語言使用循環打印數字列表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM