コンテンツ値を持つ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