That includes support for && and || and a few other things that should go a long way towards making most code you find drop-in ready.
I'm more concerned about making fish scripts work well than making fish run bash scripts. (Maybe fish 3.0 will improve that too.) I've tried to use fish for writing somewhat serious scripts several times, and I've always run into frustrating problems that sent me back to bash for scripting. Fish is an excellent interactive shell, of course.
However with regards to your other matter, I personally just finished rewriting the job control code to close out a lot of long standing bugs affecting correctness and child process behavior in complicated scripting cases, and other members like @faho have done an amazing job fixing up some of the builtins and scripting-related improvements as well as putting in insane effort into the interactive behavior of the shell and its insane library of completions.
Try the current fish master builds and see how if fares. If you have any specific concerns, please file a GitHub issue. It’s an open source project and it can only succeed with the help of the entire community.
fwiw I find the sanity fish brings to process substitution with sane tokenization and automatic escaping of shell substitution output to be a huge boon to productivity over writing in (ba)sh. These days, my scripts are either written in ninja or bmake if they are rule/output driven or fish otherwise.
If you use a lot of addons, this can load up prompts faster without losing any OMZ goodness.
FWIW, here's my .zshrc. https://github.com/dancek/dotfiles/blob/master/.zshrc
# Bash:
FOO=bar ./command
# Equivalent in bash and fish:
env FOO=bar ./commandi can however appreciate that breaking bash compatibility is not for everyone.
i mix use of bash and fish. but more often than not i find myself in a situation where i switch to fish because it makes some complex command easier, than the reverse.
greetings, eMBee.
It's not bash compatibility, but it is good enough for one-offs and even for many scripts and tools that expect to be sourced in your dotfiles from bash.
I still use fish for scripting as its syntax is far more casual looking.