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?
010bedeutet 8, weil ein 0vorangestelltes Oktal bedeutet, ähnlich wie 0xin einigen Sprachen Hex bedeutet.
0Oktal, 0xHex und 0bBinär ausgelöst.
0sagt, es soll oktal sein. Wenn Sie das tun nurx=10dannecho $((x+0))dann zeigen10. Auch gibt es keine Notwendigkeit für den zusätzlichen$mit in der().