My command line usage is not much influenced by Bash or Fish. Command line is handled by Readline library, from which I use "Vi" mode (set -o vi) and various shortcuts. So, I stick with what I know, Bash. My script usage is Bash, by finger/eye memory and by need. Fish is better for scripting. Simply because it's newer and purposely designed to address Bash's deficiencies. But, not sufficient to overcome 40 years of shell scripting. Fish has some features I like, eg. - no word splitting and globing on variable. - no "; do" or "; then" in "for", "while", "if" statements. - better in-line command substitution. Now, stuffs I don't like, eg. - Fish doesn't have heredoc (<<EOF). I often use it as quick template. - Fish doesn't have subshell. I often use it to protect parent environment. - it's written in Rust. I'm not going to learn Rust, just to modify and contribute to Fish code. But, as ordinary users, it comes as default, so give it a try for few month. It's completion feature may be better than Bash or Zsh. On 2025-08-17 11:21, D. Hugh Redelmeier via Talk wrote:
From: Evan Leibovitch via Talk <talk@lists.gtalug.org>
Wondering if anyone here has experience with the fish shell <https://fishshell.com/>, which I discovered as it is the default in Bazzite Linux.
Thanks for the pointer. I had a look at that page. Nothing seemed compelling:
"works out to the box" BASH seems to work and come pre-installed on most systems. Not in (some?) debian, but ash or whatever debian defaults to doesn't cater to my muscle memory.
"sensible scripting" BASH too.
"reads your mind" no thanks
"abbreviations" not convinced of the value
"glorious VGA color" No thanks!
"web-based configuration" Really? Anachronistic.
Non-POSIX-compliant by design,
That's not good. Until you give a good reason.
"Unlike other shells, variables are not further split after substitution:"
Way way too late to change this convention. I agree that the convention is unfortunate.
"lists" Interesting. Probably leads to an impedance mismatch with the rest of the system. I felt that with the rc shell.
it appears to be far more advanced in tab-completion and inline syntax checking than bash.
Might me useful. Don't know what that means. The link says "syntax highlighting" not "syntax checking".
("You'll never write esac again", they say...)
I like esac. Each distinct open bracket should have a distinct closing bracket. Otherwise mismatched bracket errors cascade.
esac was one of the good innovations of Algol 68. Bourne was under the thrall of Algol 68 when he created his shell.
Has anyone tried it? Is it anyone's daily driver?
Not me.
It might be more useful than the front page suggests.
------------------------------------ Description: GTALUG Talk Unsubscribe via Talk-unsubscribe@lists.gtalug.org Start a new thread: talk@lists.gtalug.org This message archived at https://lists.gtalug.org/archives/list/talk@lists.gtalug.org/message/JADOBOC...
------------------------------------ Description: GTALUG Talk Unsubscribe via Talk-unsubscribe@lists.gtalug.org Start a new thread: talk@lists.gtalug.org This message archived at https://lists.gtalug.org/archives/list/talk@lists.gtalug.org/message/MWNY3WU...