Well bash does kind of have archaic syntax
Allegedly the guy who created bash had a bunch of C macros that made C more algol68-like.
#define IF if(
#define THEN ){
#define ELSE }else{
#define ELSEIF }else if(
#define END }
#define WHILE while(
#define FOR for(
These are described as "non-syntactic macros" and are frowned on these days, but it was the Wild West in the early '70s.The biggest problem really seems to be that they wanted to avoid the use of esoteric syntax like double quotes and brackets, which resulted in a very unspecific syntax that is continually uncertain of if you are type strings or commands, so we have to use even more quotes and brackets and things of that nature.
It really makes me wonder why no one seemed to be working on guiding Linux over to some JIT compiled C scripting like TempleOS uses.
They still are, in a sense. [ is a synonym for test, and ] is a mandatory no-op argument to it, when used as a “built-in” syntax. You can use [ outside of if as well, like
[ <condition> ] && <then-action>
test <condition> && <then-action>
https://linux.die.net/man/1/test