Fixing Unix/Linux/Posix Filenames: Control Characters (Such as Newline), 2009
dwheeler.com
dwheeler.com
Eg:
Ls | foo | bar
Ls just prints nl separated strings, no metadata, nothing to tell you what it is.
In current practical terms that means avoiding the shell, that isn't inherent though. I guess powershell avoids this issue.
I don't get why you'd want to limit yourself to POSIX in 2019. Do you really need to run your script on AIX or what have you? 99.9% of cases you just want GNU and macOS, as far as I know that includes the most important GNU tools.
Bash is really good enough for many tasks that involve gluing together a number of utilities or shuffling files around. To do this in Python or Node.js is to invite another world of hurt where you write easily 10x as much code and need to worry about package management all of a sudden.
All distros I have used use UTF-8 locales by default now, so that part of his lengthy argumentation could nearly be removed. In Yocto though, non-ASCII characters on the command line still cause havoc. Well, Yocto is not a distro, but a way to build your own. So one needs to replace several standard tools like vi, less, etc. from busybox by the "full" version.