|
Bash _itself_ (or any other shell) is very small. You're talking about the ecosystem (shell + other command line utilities). Commands like awk, find, grep, sed, cut and so many others are not strictly part of the language. They're external tools commonly provided by the operating system or distribution. That's why there are so many inconsistencies between their options. Here are the very few commands that actually are part of any modern shell: cd, printf, test, read, command. The control structures (if/elif/fi, while/do/done, for/do/done, case/esac) are also part of the shell, so is declaring functions and fd redirection. Some shells might do more (bash itself has a handful of other builtins, dash has fewer, ksh has different ones). Stuff like find, mv, cp and dd are very uniform across implementations and often don't change much, but they are external tools nonetheless. Once you internalize this distinction, and start to see these external commands like npm packages, scripting gets a lot easier. |
I'm not so sure. They mentioned syntax, and the single biggest issue among my co-workers who don't like bash is that they think ' and " work like they do in python or javascript.