In bash at least, if and case blocks are closed like this:if some-exprthen    echo hello worldficase $some-var in[1-5])    do-a-thing    ;;*)    do-another-thingesacas opposed to the more typical close of end or endif/endcase. As far as I know, this rather funny convention is unique to shell scripting and I have never seen such an odd block terminator anywhere else. Sometimes things like this have an origin in another language (like Ruby's elsif coming from Perl), or a strange justification. Does this feature of shell scripting have a story behind it? Is it found in other languages?
Are backwards terminators for if and case unique to shell scripting?
syntax;shell;bash
According to Wikipedia, the sh program reused the syntax from 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.Since Bash was the GNU replacement of sh, it reused the same syntax for backwards compatibility.