-- Leo's gemini proxy

-- Connecting to tilde.pink:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;

Do I Care if the fish shell is POSIX compliant?


I was setting up my tilde.pink account today. Nothing fancy, just making byobu start by default and changing the default shell. Usually I use fish, but this is the first BSD machine I've ever had any real contact with, so why not try a new shell while I'm at it. csh and ksh, while probably being the right choice for BSD tradition's sake, both gave the impression of being a little old. I wanted a few bells and whistles, so I chose zsh. I changed some settings and installed a fish-like completion framework and then thought "What's the point. Why don't I just use fish?"


I've read that fish is not POSIX compliant. I've never known how that might affect me, but it leaves me with a feeling that one day fish will make my life difficult in some way that a true POSIX shell would not. Maybe using zsh would ward off that spooky feeling. Thinking about this lead to me thinking about command line interfaces and why they're good anyways. One argument that I've heard and agree with is that is basically makes you act in a scriptable way. Generally if you can do something in a terminal you can script it, so you're more likely to automate things and make the best of your tools. This means the more similarity your shell bears to your shell script interpreter the better. If that were all there was to it I suppose I'd have to go all-in on one shell, and it would be best if it was something that was everywhere like bash or sh. I am not a script, though it may sometimes benefit me to act like one. I have needs that a script absolutely doesn't have. Auto-completion and command histories are important to me, but wouldn't be to a script. With that in mind maybe fish is a good compromise. It's highly optimized for human use, and hopefully its differences from the POSIX standard don't bring me so far into the wilderness that it will be hard to write a script for bash or sh when the time comes. zsh seems like it's a step closer to POSIX while still giving me some human-centric luxuries.


For now I'll probably use fish and a little zsh for interactive use and write scripts aimed at bash. I hope I don't encounter any monsters in the gulf between bash and fancier shells.


Written: 2020-07-02


[Home]

-- Response ended

-- Page fetched on Thu May 16 08:07:30 2024