Pourquoi bash pense-t-il que le nombre 010 = 8?
x=010
echo $x
010
echo $(( x+0 ))
8
echo $(( x-2 ))
6
Je pensais que cela pourrait être binaire, mais 010 = 10 = 2. Alors pourquoi obtient-il 8 et comment puis-je le faire penser 010 = 10 (et 010 - 2 = 8)?
010
signifie 8 car en mettant un 0
devant signifie octal, semblable à la façon dont mettre 0x
dans certaines langues signifie hex.
0
déclenche octal, 0x
hex et 0b
binaire.
0
dit qu'il est octal. Si vous venez de le faire,x=10
alors çaecho $((x+0))
se voit10
. De plus, il n'y a pas besoin de supplément$
avec()
.