Ah yes, the Emacs and Vim school of configuration.
The only time when POSIX incompatibility still hurts is if your workflow requires you to be source shell snippets.
The reason I'm having a hard time imagining how a scripting system that relies on bash would fail with fish is because I can't imagine how one would actually write a script that is executed with the user's login shell. There's no #! line that would do that by accident.
It's an easy fix, just add the line, otherwise 0755 scripts with no #! do execute using the current shell.
> cat foo
echo wat
> ./foo
Failed to execute process './foo'. Reason:
exec: Exec format error
The file './foo' is marked as an executable but could not be run by the operating system.
It does however work in Bash. So this appears to be a bash-ism, rather than an OS feature.Unless you want to define "bad" as "ignorant of some facet of computing" in which case we all fit.
Just curious, why do you say this? I've used bash for years for basic command line things and now it sounds like I've been missing out on great features that other shells have.
I believe the world could have been a better place if they adopted fish as a default shell.
That said, there is a long-standing issue regarding inline environment variables.[1] Briefly speaking, fish does not recognize the `NAME=value command` form. So you should use `env` to work around this. This may not be a deal breaker, but I'm a bit annoyed, and migrated to zsh.
I would call zsh the opposite to fish. It has insane defaults, is highly customizable, and has so many features that are initially disabled. After hours of configuring it, I loved it.[2] Since then whenever I set up a new Unix machine zsh has been the first thing to install.
So, I would recommend zsh for the people who are used to Unix. If not, or you don't bother to customize it, there's always fish. There is no place for bash.
[1] https://github.com/fish-shell/fish-shell/issues/438
[2] https://github.com/barosl/baroslized-settings/blob/master/.z...