This is bait.
And I'm ready to fish
Hint: :q!
Sister communities:
Community rules (click to expand)
1. Follow the site-wide rules
sudo in Windows.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.
This is bait.
And I'm ready to fish
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.
Plus, look at your name!
What specifically do you dislike about zsh?
tbh it's fine and i use it a lot more than bash.
It's the index on 1 that ruins it for me.
Edit: come to think of it what would zsh print out for echo $0?
It follows the same convention as most programming languages that expose the argument list. Python's sys.argv has the program name at index 0 and the first argument at index 1. C's char **argv does the same: index 0 is the program name, index 1 is the first argument. So it stands to reason that Zsh's $0 should be the program name and $1 should be the first argument...
...which, by the way, is exactly what Bash does as well.
Am I out of the loop? what's wrong with zsh?
Classic linux tribalism. Use what you like and don't get involved with these confrontational nerds.
It's permissively-licensed (as opposed to bash, which is GPLv3). Pushing zsh over bash is part of a larger effort by corporations to marginalize copyleft so they can more easily exploit Free Software at the users' expense. Don't fall for it!
Default zsh is just bash, you need to add all the fancy plugins to get it to do cool stuff
fish is for people who don't want to spend the time setting it all up and to just get a shell that has most of the QoL fetaures builtin.
But I'm a compliant little bitch for POSIX daddy
So write all your scripts in POSIX compliant bash and use the proper shebang?
zsh > bash
Brave stand, I will stand side by side with you until the first signs of mild resistance or mockery from the world!
Well guess what?
#include <string.h>
#include <iostream>
int main (int argc, char *argv[])
{
const int which = strcmp ("zsh", "bash");
std::cout << which << std::endl;
return 0;
}
Output
1
Zsh? That's a command shell I have not heard of for a very long time.
Check the date on his computer, is it also set to something in the 1980s?
I have never really ever used bash and thought, "Man, I wish my shell was better . . . ". Using ctrl+r to recall past commands, using sudo !! to fix missing permissions and writing small bash scripts all work very well.
That being said, if you use anything else, and you like it, I'm happy for you, but I do wonder, what leads people to other shells? What problems do they have with bash?
I switched to zsh at a time where completion for commands parameters except file paths in bash wasn't really a thing, you could add some with a script, but they didn't work well. I'm sure the situation has improved by now, but someone told me recently, there are still no descriptions for the completions. I find it very helpful and it saves me opening a man page a lot of times. For example, typing grep -<Tab> gives me this:

And now I'm so used to many little features (mostly around the syntax) that wouldn't be a reason to switch on their own, that I find bash cumbersome to use.
I switched from bash to zsh a while ago, mostly just for shits and giggles. I really can't see any reason to form a strong opinion on it one way or the other.
Nushell is very cozy for me. I work with SQL all day so I ended with PTSD and having my terminal syntax cosplay as it is nice.