From this web page :
http://tldp.org/LDP/abs/html/abs-guide.html
It\'s mentioned the usage of the if bracket then convention which need a space after the semicol
I do not believe that the space should be necessary there. There's nothing about requiring spaces in the POSIX sh spec.
Empirically, the following works fine in both bash 4.1.5(1) and dash:
$ if true;then echo hi;else echo bye;fi hi $