(10進数)変数(前に0が付く)の値を+ 1ずつ増やす方法は?

(10進数)変数(前に0が付く)の値を+ 1ずつ増やす方法は?

コンテンツ値を持つBuild.numberというファイルがあります。012+1ずつ増やす必要があります。だから私はこれを試しました。

BN=$($cat Build.number)
BN=$(($BN+1))
echo $BN >Build.number

しかし、私が期待したときに得られる値は11です。013。誰が私を助けることができますか?

ベストアンサー1

先行ゼロはBashを引き起こします。値を8進数値として解釈する;8進数012は10進数10なので11になります。

小数点以下の桁数を強制するには、以下を追加します10#(数字の前に符号がない場合)。

BN=10#$(cat Build.number)
echo $((++BN)) > Build.number

3桁以上の数字で印刷するには、次のようにしますprintf

printf "%.3d\n" $((++BN)) > Build.number

おすすめ記事