我尝试通过以下逻辑添加两个数字:
num=0001
newnum=`expr $num + 1`
echo $newnum
但它返回' 2',我想要的输出是' 0002'
num=0001
newnum=`expr $num + 0001`
echo $newnum
我也使用了上述逻辑,但没有用。这里需要什么来获得我想要的输出 提前谢谢。
答案 0 :(得分:2)
使用printf
打印带前导零的数字:
printf "%04d\n" $num
你不应该对带有前导零的数字进行算术运算,因为许多应用程序将初始零视为数字是八进制而不是十进制。
答案 1 :(得分:1)
使用printf
:
$ num=0001
$ printf "%04d" $(expr $num + 1)
0002
为了将结果分配给变量,请说:
$ newnum=$(printf "%04d" $(expr $num + 1))
$ echo $newnum
0002
答案 2 :(得分:0)
带前导零的数字被解释为八进制数。为了将它们视为小数,您需要在数字前加10#
。最后,使用printf
用零填充数字。
num=0001
newNum=$((10#$num + 1))
paddedNum=$(printf %04d $newNum)