Bash-like scripting in shells is prevalent in operating systems but I don’t understand why, when it doesn’t have the syntax to make programming easy like other languages. What features does bash have that make it so suitable for shells? Why even new operating systems like Redox OS choose a very similar syntax over a completely different programming language?
Let’s see here. We’re talking about a thirty-plus-year-old language that was deliberately written as a superset of
sh
from 1979. Its main purpose is to glue together other command-line programs on 'NIXish systems to automate complex procedures for sysadmins. Using it as a general-purpose programming language, while not impossible, is kinda dumb if you have any other options. Within its original niche, it ain’t broke, so there’s no need to fix it.It’s a contemporary of Tcl and Perl, not of Python and Java (and
sh
is from the era where microcomputers mostly used BASIC dialects). Unlike Perl, it didn’t bolt on object orientation or other more modern features afterwards—and really, Perl was intended as just the kind of “shell script killer” you seem to be thinking of in your introduction. However, it never completely displaced the shell built-in scripting languages even in the days before it fell out of favour itself. Might be that there’s a reason for that.