Perché bash pensa che il numero 010 = 8?
x=010
echo $x
010
echo $(( x+0 ))
8
echo $(( x-2 ))
6
Ho pensato che potesse essere binario, ma 010 = 10 = 2. Quindi, perché ottiene 8, e come posso farlo pensare 010 = 10 (e 010 - 2 = 8)?
010
significa 8 perché mettendo un 0
davanti significa ottale, simile a come mettere 0x
in alcune lingue significa esadecimale.
0
innesca ottale, 0x
esadecimale e 0b
binario.
0
dice che è ottale. Se solo farex=10
alloraecho $((x+0))
poi spettacoli10
. Inoltre, non è necessario il supplemento$
con in()
.