> "az $answer értéke pedig karakter lesz és nem szám így az összeahasonlítás is rossz"
No ez nem igaz. Ha semmi extra módon nem jelzed, akkor a (ba)sh-ban nincs szöveges/szám tipua a változónak, hanem pont a "szövegkörnyezet alapján használja a shell
a=1
b="1"
c='1'
A három értékadás között semmi különbség nincs.
A valódi probléma az if / else ágak illetve a lezárás hiánya volt.