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.
“POSIX compliant shells” means shells that work with… Fuck how do I even describe this simplistically? A lot of scripts are ran by a program named “sh”. Sometimes it is bash, sometimes dash, but they’re all POSIX compliant which means they’ve got some standard things that most people expect.
Using a non POSIX compliant shells will be okay, because programs trying to use “sh” will still work (unless you set something up wrong, which you’d probably have to go out if your way to do, so you’re probably fine).
Genuinely the only downside to using a non POSIX compliant shell is that you won’t learn the standard stuff so you won’t be as good at writing and reading scripts. It’s truly not too big of a deal. Fish (non POSIX compliant) is what Arch (or at least Cachy) used by default. It’s been great. The defaults are useful. To get a similar experience with POSIX shells I typically have to use zsh with oh-my-zsh and some plugins. Fish does it all out of the box.
So don’t worry about it!
Hell yeah, I don’t really mess with scripts much yet but I do love to be non standard. Thanks for the run down!