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)?
010signifie 8 car en mettant un 0devant signifie octal, semblable à la façon dont mettre 0xdans certaines langues signifie hex.
0déclenche octal, 0xhex et 0bbinaire.
0dit qu'il est octal. Si vous venez de le faire,x=10alors çaecho $((x+0))se voit10. De plus, il n'y a pas besoin de supplément$avec().