fish, the friendly interactive shell, is a commandline shell intended to be interactive and user-friendly.
fish is intentionally not fully POSIX compliant, it aims at addressing POSIX inconsistencies (as perceived by the creators) with a simplified or a different syntax. This means that even simple POSIX compliant scripts may require some significant adaptation or even full rewriting to run with fish.
Fish is not the worst in this regard, because:
But there may still be situations where it’s annoying, like if you’re working in a container, then you likely don’t want to mount your
fish
executable every time.But I also have to say I don’t find it too big of a deal.
I still use Bash for scripting (just throw a
#!/bin/sh
or#!/bin/bash
at the top of your script, like you should anyways), and then for interactive use, not that much of the shell syntax comes into play anyways.And if I ever do need to copy a complex Bash command into an interactive shell, I can just run
bash
, then run the command in there and thenexit
back out.