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