Currently using zsh but I installed fish yesterday to try it out because I’m thinking of switching. All the zsh plugins I have are basically just replicating what fish has by default anyway and fish might do it better.
It still gives you basically no advantage compared to just making your terminal emulator launch fish by default. And well, it does give you the major disadvantage that scripts without shebang will fail.
I have that occasionally when I want to copy a complex bash command from somewhere. But yeah, I can then just run bash, run the command in there and then exit back out of there.
But well, I was rather thinking of when it’s using Bash-scripting-syntax to combine multiple commands.
Like, maybe there’s a for-loop in there. You just can’t paste that directly into Fish and have it work. Granted, you should probably put that into a script file, even if you’re using Bash, but yeah, just temporarily launching bash is also an option.
# if interactive, launch fish
[[ $- != *i* ]] && return || fish
and
alias f='fish'
So fish is my default, and if I ever need bash, it’s already there underneath, just a Ctrl-d keybind away to fall back on, and if I want to get back into fish, it’s just a f & RETURN away.
Seems better to have all the convenience of fish up front. All the completion magic. I so rarely have to type much at all.
Can cause issues (with things that expect bash or other nearer POSIX compliant shells as the system shell).
And then I’d lose those other benefits described, like having bash just a keybind away.
[Edit: I could have swore I got that interactive check in bashrc thing from https://fishshell.com/docs/current/faq.html or other documentation on fishshell.com, but, seems not. Can’t find it even in older copies. Not sure where I picked up that idea from then. Plausibly from someone on irc. I was sure I got that as official advice from fish… which I’ve been using and doing that method with since around 2014.]
I jumped from bash to fish because cachy os has it as default. I kinda don’t like it, it’s a little too fancy, but it’s not bad enough for me to bother switching the default to bash. So I’m using it. Still not quite liking it but maybe it’s growing on me.
This is bait.
And I’m ready to
fishCurrently using
zshbut I installedfishyesterday to try it out because I’m thinking of switching. All thezshplugins I have are basically just replicating whatfishhas by default anyway and fish might do it better.Plus, look at your name!
Just whatever you do, don’t
ln -s /bin/fish /bin/shWho the fuck would do that 😭
Well a shell script that can only run with Nash should include !# bin bash in the header.
You assume everyone writes shebangs correctly. Also ideally you’d use
#!/usr/bin/env bashI see.
Proceed to write
#!/bin/env bashIt still gives you basically no advantage compared to just making your terminal emulator launch
fishby default. And well, it does give you the major disadvantage that scripts without shebang will fail.The other way around, fish was implemented with the most popular zsh plugins in mind.
I know but I looked at what fish could do and tried to replicate that with zsh plugins
Six and two threes
It’s time for a
nushellMisread it as nutshell
Fish is great if you can’t remember a specific command, or don’t want to type out long filenames/locations, but I dunno if I’d use it as the default.
I just type “fish” in the terminal if I ever run into a situation where I might get some use from it.
I used to do that, until I realized I never had a usecase for plain bash over fish
I have that occasionally when I want to copy a complex bash command from somewhere. But yeah, I can then just run
bash, run the command in there and thenexitback out of there.that’s what bass is for
I’m guessing, you mean this then: https://github.com/edc/bass
But well, I was rather thinking of when it’s using Bash-scripting-syntax to combine multiple commands.
Like, maybe there’s a for-loop in there. You just can’t paste that directly into Fish and have it work. Granted, you should probably put that into a script file, even if you’re using Bash, but yeah, just temporarily launching
bashis also an option.in my ~/.bashrc
# if interactive, launch fish [[ $- != *i* ]] && return || fishand
alias f='fish'So fish is my default, and if I ever need bash, it’s already there underneath, just a Ctrl-d keybind away to fall back on, and if I want to get back into fish, it’s just a
f& RETURN away.Seems better to have all the convenience of fish up front. All the completion magic. I so rarely have to type much at all.
Why not just set it as the default then?
Can cause issues (with things that expect bash or other nearer POSIX compliant shells as the system shell).
And then I’d lose those other benefits described, like having bash just a keybind away.
[Edit: I could have swore I got that interactive check in bashrc thing from https://fishshell.com/docs/current/faq.html or other documentation on fishshell.com, but, seems not. Can’t find it even in older copies. Not sure where I picked up that idea from then. Plausibly from someone on irc. I was sure I got that as official advice from fish… which I’ve been using and doing that method with since around 2014.]
I jumped from bash to fish because cachy os has it as default. I kinda don’t like it, it’s a little too fancy, but it’s not bad enough for me to bother switching the default to bash. So I’m using it. Still not quite liking it but maybe it’s growing on me.