Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> Anything other than ”#!/usr/bin/env bash” is doomed to fail at some time.

if you have /usr/bin/env



/usr/bin/env (and /bin/sh) are part of POSIX, that is why the above shebang is the recommended way to start a shell.


/bin/sh is NOT required by POSIX, they explicitly warn that it may not exist[1].

> Applications should note that the standard PATH to the shell cannot be assumed to be either /bin/sh or /usr/bin/sh, and should be determined by interrogation of the PATH returned by getconf PATH , ensuring that the returned pathname is an absolute pathname and not a shell built-in.

[1] https://pubs.opengroup.org/onlinepubs/9799919799/


I don't know if this is still a thing, but I distinctly remember when playing around with NixOS years ago that `env` was the only thing in /usr/bin, which I assumed was pretty much exactly for this reason.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: