Это не "разные оболочки". sh во всех современных дистрибутивах Линукс - это ссылка. Куда именно - зависит от дистрибутива. На Дебьяне - dash. В редхатоидах - bash.
У ТС это далеко не единственная проблема. Фактически, там только один if и больше ничего. Есть несколько функций, но они не вызываются нигде. Нет обработки аргументов/опций.
В, к примеру, n-мерном арифметическом вещественном пространстве (R^n) можно задать разные метрики при одном и том же базисе (стандартном, например; так что координаты одних и тех же векторов будут одинаковыми, но длины разные).
Так что не надо формулировать неверных утверждений.