ほるっふー

自宅のベランダに鳩が住み着いた話を5万人の前ですること。

shell の printf の結果がおかしい

ファイル名に使うために上の桁を0埋めで数字を5桁にする処理を使っていた。

分かってしまえばすごくしょうもない話なのだが、頭に0をつけると8進数として処理されるので、

[iMac] smith: ~ $ printf "%05d\n" 773

00773

[iMac] smith: ~ $ printf "%05d\n" 00773

00507

[iMac] smith: ~ $ printf "%05d\n" $(printf "%05d" 773)

00507

 

対話的に見れば明らかだけど
別の shell script の中に2箇所で成形をしてる部分があって下流の番号がおかしくなってたのは、気づくのに時間がかかった。