Bash is a underappreciated language. It falls into this same category as Makefile where developers learn just enough of it to complete their tasks. As a result most of the bash code out there is written by beginners. Which then in turn gives a bad reputation to the language.
The number one issue with Bash is variable escaping. If a variable is used in it’s unescaped form and contains one or many whitespace characters in it, it creates undefined behavior in the program.
Bash gets a unnecessarily bad reputation because of escaping issues. These are mostly avoidable by using Bash arrays, and ShellCheck.
Even after coding for a long time, I still have to search for how to do things. The Pure Bash Bible has turned that search way down.
_____ < EOF > ----- \ (\/) \ (_o | / | \ \______ \ )o /|----- | \| /|