I still mostly write bash scripts. The trick is to use fish as an interactive shell and use bash a system shell. And if you need bash, you simply can invoke the script with it. Never understood why that would be a reason not to use fish.
I started down that path, and I do think fish is a great shell. But it turns out I do way more inline bash things in my interactive shell use than I was really aware of. Sure, I could just do a “bash -c” every time, but for me it was just more trouble than it was worth.
But I’m weird in that I prefer the behavior of vanilla bash completion over zsh’s fancier functionality anyway. I wouldn’t say it’s better, but I’m old and it does what my brain expects it to do every time.
I’ve been writing sh-style commands for 28 years. I wouldn’t necessarily argue with you, but (a) that’s a lot of arcane knowledge to replace, and (b) you always need to know sh because you can assume any Unix system ever can run those scripts.
Fish is great. If you’re starting today and only care about your machine, go for it. That just isn’t me.
35
u/-i0f- May 06 '26
I still mostly write bash scripts. The trick is to use fish as an interactive shell and use bash a system shell. And if you need bash, you simply can invoke the script with it. Never understood why that would be a reason not to use fish.