簡體   English   中英

Unix KSH計數器-遞增時保留前導0

[英]Unix KSH counter - preserving leading 0s while incrementing

我需要在循環中增加一個計數器。 要求是這樣的:

$ echo $x
0000001
$ x=$((x+1))
$ echo $x
2

但是,櫃台應該這樣:

0000001
0000002
0000003
0000004
0000005
0000006
0000007
0000008
0000009
0000010
0000011

您需要typeset -Z

從文檔:

如果第一個非空白字符是數字並且未設置-L選項,則右對齊並用前導零填充。 如果還設置了-L選項,則刪除前導零。 如果n不為零,則它定義字段的寬度,否則由第一次賦值的寬度確定。

$ typeset -Z 6 x
$ x=1
$ echo $x
>> 000001
$ (( x ++ ))
$ echo $x
>> 000002

嘗試這個:

$ echo $x
0000001
$ x=$((x+1))
$ printf "%06d" $(echo "$x" | bc)
0000002

使用printf您可以格式化輸出。 現在,它也可以使用前導零

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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