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.

      • _cnt0@lemmy.villa-straylight.social
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        Sure, things usually put env in /usr/bin, but there’s no guarantee for that.

        There is even less guarantee for it to be anywhere else.

        Hardcoding /usr/bin/env is probably your best bet

        Because it is the convention.

        That’s why #!env is probably your best bet

        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/envis 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 🤨).