The thing is, when I picked up fish, I couldn't forget my existing bash knowledge. I still have to write normal bash-dialect shell scripts, and with the fish syntax being so much nicer and simpler, the two can happily co-exist in my head. Occasionally I'll hit Up to search through history instead of Control-R, but I quickly realise what I've done and use the bash keybinding instead. And the only fish aliases I missed were 'l', 'll', and 'la', which I just manually copied over without bothering with the rest.
If I had to use bash more often at work... I'd still use fish at home after all the time I've sunk into it, but YMMV.
So Oil is almost indistinguishable from bash at first, but you can unlock more powerful functionality with the var and proc keywords, etc.
This page has the old sh and new Oil idioms, but importantly Oil runs all the old stuff!
Does oil allow a gradual upgrade path to using oil semantics for stuff like “echo $dontbreak”? Are there “set” options that enable oil semantics? Sort of like “use strict” in JavaScript and perl
http://www.oilshell.org/blog/2021/01/why-a-new-shell.html#ho...
I need to document things a bit better but the idea is here: https://lobste.rs/s/ritbgc/what_glue_lanugages_do_you_use_li...
In the case of echo, we respect -e and -n, but we also have "write -- -n" for correctness. I try not to "stomp" on existing names.
---
And yes there's an analogy to Perl: http://www.oilshell.org/blog/2020/07/blog-roadmap.html#the-u...
Getting "good at bash" is a game with diminishing returns.
It's so random and non-orthogonal (bash itself, and the flags of common UNIX cli utils) as a scripting language, that you always end up having to look this or that, and with crazy corner cases you've missed.
I switch to bash about once/month:
* for/while loops with a lot of logic that I don't feel would be worth translating to fish
* dealing with obscure/strange other things that again wouldn't be worth the time to translate to fish
ultimately, I feel that I get such benefit out of fish that the occasional switch to bash is worth the pain.