Bash - zamiana zmiennej tekstowej typu "08" na wartość

Mam dziwny problem z zamianą w Bashu zmiennej tekstowej zawierającej liczbę na wartość.
Wg literatury powinna tu działać formuła $((zmienna))
I tak jest … ale nie zawsze!
Poprawny jest wynik dla większości wartości zmiennej, np.:

i=4
echo $((i))
4

i=04
echo $((i))
4

i="04"
echo $((i))
4

Jednak pojawia się problem, gdy zmienną jest 08, "08", "09" czy "008" . Wtedy jest błąd:

i=08
echo $((i))
bash: 08: wartość za duża na podstawę (błędny znacznik to "08")

i=008
echo $((i))
bash: 008: wartość za duża na podstawę (błędny znacznik to "008")

i="09"
echo $((i))
bash: 09: wartość za duża na podstawę (błędny znacznik to "09")

O co tu chodzi? Jak to mogę rozwiązać?

Spróbuj:

echo $((10#$i))

Dzięki. Właśnie znalazłem wytłumaczenie, że liczba całkowita z zerami na początku traktowana jest jako ósemkowa i wymaga poinformowania Basha poprzez 10#, że chodzi o liczbę dziesiętną.