Basically every non-Windows system comes with a POSIX-compliant shell at /bin/sh. If you’re using shebangs in your POSIX shell scripts like you should, using Fish as your Friendly InteractiveShell shouldn’t be a problem.
Don’t try to out-nerd me, your shebang advice isn’t even POSIX compliant ! Use #!/usr/bin/env sh, there are systems (incl. NixOS) where there is no /bin/sh
And Fish’s scripting language leaks into the interactive shell. Setting variables via export a=b doesn’t work, for example. I don’t like that.
Yes, it’s true that #!/usr/bin/env bash is a more reliable way to get bash, but you mentioned that you wanted a POSIX shell, not that you specifically needed bash, so #!/bin/sh will work on any system including NixOS.
Also, export a=bdoes work in Fish. But you don’t have to use it if you don’t know how it works.
even if it was… you can just run bash or /bin/sh and then run the script there. It’s not you can’t shell into a different shell to run a script. you lose nothing.
I used to use fish but I don’t like their weird scripting language. I want my shell to be POSIX compliant.
( yes, even my interactive shell )
Basically every non-Windows system comes with a POSIX-compliant shell at
/bin/sh. If you’re using shebangs in your POSIX shell scripts like you should, using Fish as your Friendly Interactive Shell shouldn’t be a problem.Don’t try to out-nerd me, your shebang advice isn’t even POSIX compliant ! Use
#!/usr/bin/env sh, there are systems (incl. NixOS) where there is no/bin/shAnd Fish’s scripting language leaks into the interactive shell. Setting variables via
export a=bdoesn’t work, for example. I don’t like that.Actually,
/bin/shis available on NixOS 🤓Yes, it’s true that
#!/usr/bin/env bashis a more reliable way to get bash, but you mentioned that you wanted a POSIX shell, not that you specifically needed bash, so#!/bin/shwill work on any system including NixOS.Also,
export a=bdoes work in Fish. But you don’t have to use it if you don’t know how it works.deleted by creator
even if it was… you can just run
bashor/bin/shand then run the script there. It’s not you can’t shell into a different shell to run a script. you lose nothing.Not being POSIX is one of its main selling points. If you want POSIX, you’re not the target audience
Thank you for rephrasing what I said.