Ezzel egyetértek, bár ha az "e" tudásánál bonyolultabb kell, akkor én előveszem a bc-t.
Egyébként ha a bash nem lenne olyan buta, akkor pl. a számrendszerek közti váltást simán meg lehetne ejteni úgy, ahogy a Korn-shell (*) pár évtizede már tudja:
$ typeset -i16 i=8#33 ; echo $i
16#1b
$
Azaz az i változóra beállítom, hogy 16-os számrendszerben tessen kezelni, majd értékül adom neki a 8-as számrendszerben értelmezett 33-t (ami ugye 27). A kiíratás pedig az adott változóra érvényes számrendszerben jelenik meg (amit persze jelez is). Vagy ha utólag jövök rá hogy konvertálni akarok, akkor csak átállítom az alapszámot, és kész.
Sajnos a bash nem ismeri a typeset -i esetén a számrendszer alapszámának megadását, ő csak 10-esben hajlandó megjeleníteni, de integer tipusú változónál a bash is hajlandó elfogadni a spéci formában levő bemenetet. Azaz ha elég a valamiből 10-esbe konverzió, akkor bash alatt is lehet így:
$ typeset -i i=8#33 ; echo $i
27
(Amúgy "bash" alatt "typeset"-ként kevéssé szokták ismerni, ott valamiért "declare"-nek szeretik hívni az adott parancsot - viszont mivel mind a kettőt megeszi, én jobb szeretem a hordozhatóbb formát használni.)
(*) ami a ksh93-s nevű verziójában amúgy float változótipust is kezel typeset -f v formában.