Hacker News new | ask | show | jobs
by fnj 3350 days ago
It won't work on dash or on BSD ash either. Do what you want, but you won't be doing it working for me because I care about portability.
2 comments

Isn't that like arguing that one should code only in the form of polyglots that would run on any major programming language? The reality is that bash itself is both highly portable and already widely ported: in 2017 (or 2007) my bash script will run on essentially as many platforms as your POSIX shell script (including the aforementioned HP-UX: the last time I had access to one of those I definitely had access to a copy of bash; there was no reasonable JVM available!! but I definitely had bash).
Better make sure those shell scripts all run in csh/tcsh too. Never know when you'll be running on MacOS 10.1!
csh is still the default root shell on FreeBSD, which is in heavy use in millions of places around the world.

There are also a relatively large number of tcsh users in the world. This is why, even now on latest fedora, /etc/profile.d contains csh scripts.

As for sh, standards exist for a reason. Try to empathize with people who are not in your bubble.

Dash is on all my main servers, but Busybox is on the vendored stuff.

That means dash & ash.

Portability can matter.

the nice thing about standards is that you don't have to make sure the script runs in a billion different shells. You just have to make sure your code is POSIX compatible, and all of a sudden, all POSIX compatible shells will interpret it just fine! Isn't that fantastic?
csh and tcsh are not POSIX compatible.