Hi all I have a quick question. Is it better for my zsh shell to be in /usr/bin/zsh or /bin/zsh. I remember reading that one of them would mess up the whole system since zsh is not posix compliant. I believe that szh shouldn’t be set as the root shell. I now have it in /usr/bin/zsh, is that good? So now when I drop into a root shell I don’t get they autocompletion feature that zsh has. I’d also lose that fancy theme. Does that mean my root shell is still bash? Thanks
Sure, things usually put env in /usr/bin, but there’s no guarantee for that. All standards like POSIX guarantee is that the standard PATH contains certain binaries.
Hardcoding /usr/bin/env is probably your best bet, but hardcoding any path is making assumptions that POSIX complaint shells don’t guarantee.
That’s why
#!env
is probably your best bet, but people hate shebangs without absolute paths.There is even less guarantee for it to be anywhere else.
Because it is the convention.
It definitely isn’t. That might work in your user space instance of bash in the desktop, but will likely fail in a script invoked during boot, and is guaranteed to fail on several non-gnu/non-linux systems.
#!/usr/bin/env
is the agreed convention and there is no probably or but about that. If that does not work on a system it is a bug (looking at you BusyBox containers 🤨).