BASH让命令......在填充数字上给出错误的结果

时间:2013-04-01 10:42:33

标签: bash command let

以下代码按预期打印4:

let x=21
let x=$x-1
echo $x

但以下打印16:

let x=000021
let x=$x-1
echo $x

有人可以解释一下这个区别吗?

1 个答案:

答案 0 :(得分:3)

00021是八进制常量。输出16是正确的十进制结果。 要获得八进制值

printf "%o\n" $x

如果数字为十进制,则删除前导零。