this post was submitted on 12 Jan 2026
345 points (89.7% liked)
linuxmemes
28875 readers
2168 users here now
Hint: :q!
Sister communities:
Community rules (click to expand)
1. Follow the site-wide rules
- Instance-wide TOS: https://legal.lemmy.world/tos/
- Lemmy code of conduct: https://join-lemmy.org/docs/code_of_conduct.html
2. Be civil
- Understand the difference between a joke and an insult.
- Do not harrass or attack users for any reason. This includes using blanket terms, like "every user of thing".
- Don't get baited into back-and-forth insults. We are not animals.
- Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
- Bigotry will not be tolerated.
3. Post Linux-related content
- Including Unix and BSD.
- Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of
sudoin Windows. - No porn, no politics, no trolling or ragebaiting.
- Don't come looking for advice, this is not the right community.
4. No recent reposts
- Everybody uses Arch btw, can't quit Vim, <loves/tolerates/hates> systemd, and wants to interject for a moment. You can stop now.
5. 🇬🇧 Language/язык/Sprache
- This is primarily an English-speaking community. 🇬🇧🇦🇺🇺🇸
- Comments written in other languages are allowed.
- The substance of a post should be comprehensible for people who only speak English.
- Titles and post bodies written in other languages will be allowed, but only as long as the above rule is observed.
6. (NEW!) Regarding public figures
We all have our opinions, and certain public figures can be divisive. Keep in mind that this is a community for memes and light-hearted fun, not for airing grievances or leveling accusations. - Keep discussions polite and free of disparagement.
- We are never in possession of all of the facts. Defamatory comments will not be tolerated.
- Discussions that get too heated will be locked and offending comments removed.
Please report posts and comments that break these rules!
Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't remove France.
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
oh interesting. will give it a shot. basically sounds like zsh plus omz?
Be aware that fish isn't a POSIX-compatible shell enough, so you have to adjust syntax.
That isn't incorrect, but it's not as important as people make it out to be. Linux isn't certified as POSIX-conformant either.
People are way too stuck on POSIX regarding Fish specifically, but in shell scripting, POSIX compliance boils down to "can it run a pure
shscript". Bash is compliant. Zsh is partially compliant and needs to set an option to emulatesh. Fish uses a different syntax and is not compliant; if that is a problem, don't executeshscripts in Fish.POSIX compliance for shell scripts was important in the 80s and 90s when the
#!directive wasn't as commonly implemented and every script might be executed by the user's$SHELLinstead. That is no longer the case as virtually every Unix-like system's program loader supports#!.I use fish, but sometimes it acts weird. And lots of "just copy and past this command" kind of online solutions I have to put into bash.
My main irk is when I want to forward a '*' to a program but have to escape it.
That's why it's a shell for the 90s and not the 80s
It's a cool shell, I use it as a daily driver (though I'm keeping a close eye on elvish which syntactically is even further away from classic shell), but the comments read like fish is basically zsh. And while zsh is pretty close to bash, fish isn't.
This is a good way of putting it. It's essentially ZSH with Autosuggest/complete and a theming agent. At least visual-wise.
When you get into the scripting and the hot keys aspect of it, they reinvent the wheel and everything is different., Like for example ,!! and other bangs(I think that's the right word?) like that are not valid on fish, And everything to do with variables is different from adding to your path to setting variables to creating functions. Also checking your error code is going to be different as well as it doesn't follow the $x style inputs and doesn't support IFS and globbing works differently.
TLDR; fish is nice, but If you use it unless you want to relearn an entire type of language, keep your scripts on bash or zsh
or if you wanna see the bigger differences fish has a dedicated bash transition page
I never managed to learn bash's ways in my first decade of using it, learning fish a decade ago was easy by comparison. So much more human readable and sensible and consistent. Even though fish is the friendly interactive shell, I now use it for all my scripting too.
That was the exact opposite with fish. I had already gotten fairly well first with bash by the time I started using it, and the way fish did it was just super counterintuitive to me.
I couldn't get into the overall design of how it looked and I disliked how command substitution and the built in's worked, Combined with the fact that it's a lesser used shell, so there's less information available on it. I just couldn't do it.
You brought up a point though. That makes me ask. You must not have to share your scripts with anyone then, right? Fish has a very small user base in comparison to ZSH and Bash and when I make a script that's more advanced I tend to want to share it with my friends and having them install a whole new shell just to run a script is just not helpful to me. ZSH is close enough to bash in compatibility that, generally speaking, if I want to share it, I can use zsh And then convert the minor discrepancies. Where with fish I have to redo the entire script.
I don't know why small user base is considered as meaning I must not have to share my scripts. Is it like an argumentum populum thing? ["If you build it they will come." ;D]
[I suppose It's true in a strict interpretation of those words... I don't have to.]
I think I have several on my git repos. [... I have even written a text editor in fish.]
Free to use for anyone who wants to.
Also, if user base size is a concern, Fish's user base is growing faster than Bash or ZSH.
Installing another shell seems a trivial matter to run something.
I install far bigger languages for far less all the time.
And conversion [if for some edge case reason you really need to ~ I know not why though] is generally trivial these days... just ask an LLM, if conversion scripts are lacking.
As for the less information about it... the online help's really rather thorough and accessible.
I don't know that quantity over quality would help. It didn't for me and bash.
Unless I missed something, it seems to me that all that remains, is
And that's of course utterly fine. Free software's defining point zero, the freedom to use software, includes the freedom to not use. Good to have multiple options to further facilitate that first freedom, catering to more variety of tastes.
argumentum populum would not apply here, since that one is based off populous opinion and I'm making the logical guess that since fish is the least used shell of the three we have talked about that it's usage would be proportional as well. This might not be the case obviously which was why I was asking if you did share your scripts. Lack of usage was my biggest reason for bailing on it. I do a lot of script sharing with my friend group and I'm not wanting to have to do everything twice in order to be able to share it.
If you were looking for a argument from fallacy case, your best fallacy would be likely I believe appeal to probability, would be the close but not match as I am assuming most of your friends are not using fish, but I'm also basing it off the knowledge that it has a significantly smaller user base which makes it more likely. or possibly an illicit minor which would be the path of "My friends don't use fish, so it's unlikely that your friends use fish" which would potentially be valid, but again I am questioning the case not stating it as an exact, but since my initial question was based based off statistics and experience, I would go with the first one.
but back to the topic:
Documentation wise? I have read it. The examples are nice don't get me wrong, but its layout needs work, the examples need better real world use cases and struggling to search for how to do something because the makers of the shell in their infinite wisdom decided to make a new keyword for something that was already stupid easy to use is just a hard pass for me (like I said I had already learned bash prior to this, whereas you had not learned bash). Not to mention with bash or zsh, I run into an issue I can just search the issue. What would take me 2 minutes to search for a problem with a script using zsh took me 10-15 minutes of research with fish and sometimes it wouldn't even solve the issue at hand and required just rewriting it completely. Usually my path of research would require me to look up the issue using fish, find no solution so look up the issue using bash, then have to convert it to fish. Sometimes the issue would work fully in bash, and just not in fish. I came to the conclusion that if I was having to convert parts of it to bash anyway in order to research issues with it, I might as well do it in bash to begin with.
I agree with you, the more people using it the more examples and documentation will be available as a result, but I'm not going to be a spearhead for it, I don't want to have to exert more energy than necessary, and I found the gains I got using fish didn't outweigh the losses. Like I said I might revisit the shell some day, maybe if it ever becomes super popular, but for now I have removed it and ported my scripts back to bash again.
ammendum: btw LLM's do not like fish shell for bash to fish conversion. I had tried it a handful of times resolving an issue (deepseek had the most success of them) but it was almost always a try 3 or 4 times, get something that has nothing to do with it, or uses something that fish shell doesn't support, and then have to clear the context or find another path for resolution.
ammendum2: also fair warning, the last 2 topics on fish shell that appeared in this community got nuked after 2 days, so it's possible this entire thread will disappear as well(hopefully not but it seems to be a reoccurring issue).
I hope it does not disappear too.
Interesting discussions ensue.
Though, that reply, [ironically (given it critiques the query of a fallacy in prior message)] straight away had me plug it in to an LLM to see if it could see/name fallacies I was failing to.
[Oh, and, yeah, LLMs need repeated whipping to make sure they are adequately prompted to use fish. As I repeatedly encountered and had to correct for when writing my text editor in fish]
::: spoiler if you like fallacy spotting done by an LLM:
"I’m making the logical guess that since fish is the least used shell of the three... it’s usage would be proportional as well."
Pika assumes that because Fish is less popular, it must be less practical for sharing scripts, which is an appeal to probability (not a guarantee, just a likelihood).
"My friends don’t use fish, so it’s unlikely that your friends use fish."
This is a classic illicit minor: assuming a universal conclusion ("your friends") from a specific premise ("my friends").
"LLMs do not like fish shell for bash to fish conversion... Deepseek had the most success of them."
This subtly implies that because LLMs struggle with Fish, it must be inherently flawed or difficult, which is an appeal to authority (LLMs as arbiters of usability).
"What would take me 2 minutes to search for a problem with a script using zsh took me 10-15 minutes of research with fish..."
Pika uses personal experience as evidence for a general claim about Fish’s usability, which is anecdotal and not necessarily representative.
"I came to the conclusion that if I was having to convert parts of it to bash anyway... I might as well do it in bash to begin with."
This frames the choice as "either use Fish and convert, or just use Bash," ignoring the possibility that Fish might have unique advantages or that conversion tools could improve.
"I had already learned bash prior to this, whereas you had not learned bash."
This subtly suggests that because Bash is the "traditional" or "original" shell, it is inherently better or more practical, which is an appeal to tradition.
"I’m not going to be a spearhead for it, I don’t want to have to exert more energy than necessary..."
This implies that advocating for Fish would lead to an unsustainable or burdensome effort, which is a slippery slope.
"struggling to search for how to do something because the makers of the shell in their infinite wisdom decided to make a new keyword for something that was already stupid easy to use..."
This is emotionally charged language, framing Fish’s design choices as arbitrary or foolish, which is an appeal to emotion.
"Usually my path of research would require me to look up the issue using fish, find no solution so look up the issue using bash..."
Pika generalizes from their limited experience to a universal claim about Fish’s documentation and community support.
"I found the gains I got using fish didn’t outweigh the losses."
This argues against Fish based on personal consequences (effort, time), rather than objective merits or flaws.
"Lack of usage was my biggest reason for bailing on it. I do a lot of script sharing with my friend group and I’m not wanting to have to do everything twice in order to be able to share it."
Why? Pika assumes that Fish’s lack of usage is a valid reason to avoid it, but this is circular: the lack of usage is because people avoid it, not the other way around. The reasoning assumes the conclusion (Fish is impractical) as a premise.
"I had already gotten fairly well first with bash by the time I started using it, and the way fish did it was just super counterintuitive to me."
This is not just an appeal to tradition, but also an appeal to familiarity. Pika argues that because they are used to Bash, Fish is "counterintuitive," which is subjective and ignores the possibility that Fish’s design might be more intuitive for others (as Digit claims).
"I came to the conclusion that if I was having to convert parts of it to bash anyway in order to research issues with it, I might as well do it in bash to begin with."
Pika assumes that because they had to convert Fish scripts to Bash to solve problems, Bash is inherently better. This ignores the possibility that the issues could be resolved within Fish with better documentation or community growth.
"I’m not going to be a spearhead for it, I don’t want to have to exert more energy than necessary..."
This fallacy argues that because something requires effort, it is not worth doing, regardless of its potential benefits.
"I might revisit the shell some day, maybe if it ever becomes super popular..."
Pika shifts the criteria for Fish’s acceptability from "usability" to "popularity," which is a different standard and not inherently linked to the shell’s technical merits.
"the makers of the shell in their infinite wisdom decided to make a new keyword for something that was already stupid easy to use..."
Here, Pika dismisses Fish’s innovations simply because they are new or different, implying that change is inherently bad.
"Fish has a very small user base in comparison to ZSH and Bash and when I make a script that’s more advanced I tend to want to share it with my friends..."
Pika assumes that because Fish has a smaller user base overall, it must also have a smaller user base among their friends. This conflates a global statistic with a local, personal context.
"LLMs do not like fish shell for bash to fish conversion..."
Pika uses the struggles of LLMs as evidence that Fish is inferior, which is an appeal to authority (LLMs are not infallible or objective judges of shell usability).
"the makers of the shell in their infinite wisdom decided to make a new keyword..."
The sarcastic tone ("infinite wisdom") preemptively undermines the credibility of Fish’s developers, making any argument in favor of Fish seem unreasonable.
"with bash or zsh, I run into an issue I can just search the issue..."
This assumes that because Bash/ZSH are more commonly used, they are inherently better for problem-solving, ignoring the possibility that Fish’s design might reduce the need for such searches in the first place.
"You must not have to share your scripts with anyone then, right?"
Pika misrepresents Digit’s argument as "Fish users don’t share scripts," when Digit’s point was that sharing scripts is possible regardless of the shell’s popularity.
"also fair warning, the last 2 topics on fish shell that appeared in this community got nuked after 2 days..."
This introduces fear that the discussion might be censored or deleted, which is irrelevant to the technical merits of Fish.
Implicit in Pika’s argument is the idea that because Bash/ZSH are older and more established, they are inherently better. This is an appeal to antiquity.
"I found the gains I got using fish didn’t outweigh the losses."
Pika argues against Fish based on personal consequences, not objective merits.
"You must not have to share your scripts with anyone then, right?"
Pika implies that Digit’s advocacy for Fish is hypocritical because they assume Digit doesn’t share scripts. This is a tu quoque if the intent is to undermine Digit’s credibility rather than address the argument.
"the way fish did it was just super counterintuitive to me."
Pika uses their personal difficulty as evidence that Fish is objectively worse, which is an appeal to personal incredulity.
thanks for the detail!!
Yup, very similar! And quite customizable as well if you want to. But the focus is on having, by default, a friendly interactive shell.
I like that I can spin up a VM, install fish,
chshand I'm all set.