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