I’ve never understood the need for
fish. The shell experience is basically the same aszsh, and although it’s much more pleasant to script for, you miss out on compatibility with POSIX-compliant snippets, and besides, if you’re writing long and complicated scripts that need anything more than a handful of scalar variables you should probably be using Python (or Perl if you’re an old-school masochist).
When I installed freeBSD for the first time, I was so confused when !! didn’t work.
i am using ZSH cause Fish is not POSIX compliant,which made it annoying to run scripts without rewriting them.
When is this a problem? What scripts don’t use a shebang and/or why does using
shcall fish instead of bash or dash?I have a mild dislike of fish because a few substitutions are different enough that my muscle memory isn’t there. (But I also haven’t put in serious effort to learn them.)
I think they don’t use shebang
Have you run into a specific problem or is this just a hypothetical you’re worried about. I see this a lot but haven’t ever actually run into it being a concern. If you run a script with
from a Fish shell, it won’t use Fish, it will use whatever you haveshpointing to. (Which shouldn’t be Fish, it’s usually bash or dash.)I ran into issues on fish,i don’t remember what they are but I think it’s no shebang
Ah, I see. If you don’t remember, don’t sweat. I’m mostly curious just because posix issues is one of the few complaints I hear but I never see anything specific so I’m extremely curious lol. Please don’t mistake this as one of those fanboyism moments where people try to say something they like is actually perfect and doesn’t have flaws.
My understanding of shebangs is that it isn’t your shell doing anything fancy with it, it’s your OS (or something, I don’t remember exactly, but it’s lower level than the shell). So maybe something else borked. But I’m no fish expert, I have some error in some fish thing that prints an error every time I open a new shell that I’m too lazy to troubleshoot lol.
#!/bin/sh
Hope this helps
how about if its not in a sh file,its common for scripts to use sh or bash instead. but am just gonna stick to ZSH anyways
Linux doesn’t generally use extensions to decide what shell to use, so it doesn’t matter if it’s an sh file or not.
If it uses bash of course you can substitute #!/bin/bash
And of course you can use whatever shell you want, just saying that POSIX-compliance is not really relevant since the script can specify what shell it needs.
The Web site for fish reads:
Finally, a command line shell for the 90s
I love them and always will.
friend brought me some seashells


Get-OutOfHere

Then give nushell a go. It’s basically a modern implementation of some of the better ideas Powershell had.
Unironically though. It takes time because it’s structurally different than python but it’s fun when you figure it out
This but unironically
It even kind of suck as a Windows-only shell…
Honestly it’s pretty good, but it’s very verbose in its commands and output.
The default settings are irritating but it takes only minor tweaks to make it tolerable (mainly fixing the tab completion)
It’s nicely consistent with its object handling.
As a windows shell it is head and shoulders above cmd.exe. I’ve thought about using it on Linux but there I like fish better.
Big oof
I use fish because it was the default in cachyos and decided to give it a fair shake. I like the built in syntax highlighting and fancy autocomplete but I miss bash scripting and built in commands that replace standard commands can be weird sometimes. I have not tried scripting fish, to lazy to learn yet another scripting language, especially if bash is the (almost) de-facto standard.
I’ve been using it for awhile now for the same reason, and think I’m going to switch back to sh as it has too many suggestions which I read and it interrupts my thoughts and slows me down.
You can always just continue using bash scripting, with a bash shebang in your scripts, if you miss it
That’s what I do. Fish is great as interactive shell, scripts don’t benefit that much from it and I can use what’s familiar.
imo fish is the best out of the box for me, but I just use bash cause its everywhere
Yeah, that’s where this meme fails. BASH is the default and has been for decades. Most people are not Gigachad.
I’ll accept FISH as being for babies, Zsh as being for Emo types or extra nerdy people. SH being for white beards makes sense.
BASH is:

I used a macbook for work for a while with zsh in the terminal. IDK whether I qualify as emo, but I am nerdy. I only think of myself as regular nerdy, though, not extra nerdy.
Was zsh the default at the time? Or did you switch to zsh? AFAIK the new default is BASH, but it was zsh for a while.
IMO, your level of nerdiness is much higher if you change the default shell.
I had to go back and check. Apple says that the default changed from bash to zsh in Catalina (10.15). I seem to recall a message coming up on the machine about zsh. I definitely remember poking around at config files and looking at iTerm2 vs. the default terminal app at the time.
Does that make me extra nerdy? IDK. I can tell you that I was more focused on “What’s going to be comfortable to work with” vs. nerding out on shell differences.
I do miss homebrew now that I’m working on a Windows laptop.
I do miss homebrew now that I’m working on a Windows laptop.
wingetm’boyMaybe I remember wrong, but my memory is that at one point MacOS had zsh as the default and then switched to BASH, and then maybe back to zsh again. But, since Internet search is broken these days, I can’t find anything about that.
All I can really tell you is that I remember seeing a message about the new default being zsh, and that was back in 2020 or maybe 2021. So it def switched from something else to zsh, but whether it was bash -> zsh or zsh -> bash -> zsh…shrug
I’m not learning shit that can’t run on everything.
Source : I got a fistfull of salesforce certs in order to toe the line in my previous job, and I am currently looking for work.
I use bash because gentoo’s portage has a hard dependency on it so in my mind it doesn’t make much sense to install and keep yet another shell just because colors and autocompletion. If they ever get rid of the bashisms in portage I’d surely consider moving to fish, but getting rid of the bashisms in portage means that portage could be ported to the BSDs one more time and we could have Gentoo/BSD again
Sometimes I think I’m the only linux user who doesn’t care about their terminal emulator. I use whatever came installed. I assume it’s bash? I don’t know, but anything i want to do is supported by all of them.
Akchually, those are shells, not terminal emulators.
Which I guess confirms that you really don’t care. Whatever works for you, works for you :)
Yesh, I’m a not spending time configuring (and fixing) the shell.
If I want something hairy I’ll use Python (or even C/C++).
You might have more luck with a hamster, pythons are not hairy
I can’t begin to say how superior my fish rice is to any alternative. So I won’t. And I’ll leave yall to flame me for implying it.
All we ask of you is that you don’t reheat it in the employee break room microwave.
I think I’m using fish and it works great, I love alt+s thing and auto complete thingy.
TIL the alt+s thing
If you’re not using fish:
sudo !!Yes.
But: Bash: alias please=‘sudo $(history -p !!)’ Zsh: alias please=‘sudo $(fc -ln -1)’
Or if you are on ZSH: press escape twice. Does require OhMyZSH with sudo plugin.
No such thing as a good shell… (I just want something that’s both posix-compatible and good)
That’s a paradox. POSIX shells are all bad because POSIX demands bad syntax.
You can have pain word strings without also having weird “variables auto-explode into words” bullshit.
That’s why I use nushell. It has lists. You do
cmd ...$some_listto call a command on arguments from a list.I’m ok with that part, I’m talking more performance and convenience. POSIX isn’t the most amazing but it’s ok. And whether I like it or not, I’ll have to use a posix-compatible shell if I want to run most scripts.
I luckily don’t have to modify scripts these days so I’ll just use bash to run them if there’s no better alternative around. And usually it is, few things are only available as bespoke shell script
Funny story, in my first years of Linux, I always thought
shwas the only way to run downloaded programs in the terminal. I must have seen it on some forum and learned it that way. Much later I learned that I could just type this./programand run them.Much later I learned that I could just type this ./program and run them.
TBF that does often require that you
chmod +xthem. Sometimes, that’s not worth the effort …That actually makes sense. Maybe that was the reason why I saw it in the first place. Lazy people in works. :)
i use zsh and i’ve been recently told by a friend that i look like this exact guy




















