Warum denkt bash, dass die Zahl 010 = 8 ist?
x=010
echo $x
010
echo $(( x+0 ))
8
echo $(( x-2 ))
6
Ich dachte, es könnte binär sein, aber 010 = 10 = 2. Warum erhält es also 8, und wie kann ich es 010 = 10 (und 010 - 2 = 8) denken lassen?
010
bedeutet 8, weil ein 0
vorangestelltes Oktal bedeutet, ähnlich wie 0x
in einigen Sprachen Hex bedeutet.
0
Oktal, 0x
Hex und 0b
Binär ausgelöst.
0
sagt, es soll oktal sein. Wenn Sie das tun nurx=10
dannecho $((x+0))
dann zeigen10
. Auch gibt es keine Notwendigkeit für den zusätzlichen$
mit in der()
.