De acordo com a Wikipedia, o sh
programa reutilizou a sintaxe de ALGOL 68 .
Stephen Bourne carried into this shell some aspects of the ALGOL 68C compiler that he had been working on at Cambridge University. Notably he reused portions of ALGOL 68's "if ~ then ~ elif ~ else ~ fi", "case ~ in ~ esac" and "for ~ while ~ do ~ od" (using done instead of od) clauses in the common Unix Bourne shell syntax.
Como o Bash era o substituto GNU de sh
, ele reutilizou a mesma sintaxe para compatibilidade com versões anteriores.