Tell me more ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I'm a bash user willing to switch to a more friendly and advanced shell. I read a lot of good things about zsh, but I gave a quick test at fish and it seems great too.

Both seem very close in term of features, what is your opinion about those two shells ?

share|improve this question
You might want to express this question in terms of using a shell for shell programming before the question is closed. – Rob Wells Apr 5 '10 at 14:38

migrated from stackoverflow.com Apr 5 '10 at 14:44

3 Answers

up vote 11 down vote accepted

I have used zsh and fish. Both offer many more user-friendly features than bash. And, I know that zsh advertises itself as a shell, versus a scripting language. And, I have to agree completely. If I'm going to write a script, I always use bash. However, for my CLI, I prefer fish. While zsh is pretty, fish, is phenomenal!

I do agree with some of the other users that fish does not have the user community that zsh or bash has. However, the users that it does have are all coders, and bugs get fixed pretty quickly!

I have recently moved my main shell over to fish. I tried to do this about 9 months ago, but I ran into too many bugs to make it usable. All of the defects I saw in the past have been fixed, and now, it's my main shell, and I'm very happy with it.

share|improve this answer
2  
I have been using bash for about 12 years, that is until about a year ago. I have moved completely to fish, even my scripts. Writing a script in bash is masochistic. – kzh Jul 2 '12 at 11:01

This article explains a lot of fish's advantages over bash and zsh. Fish has one great weakness though - even if it has great features, it has next to no user base or community around it. The development is not that active either - the last version is over a year old. In my personal experience zsh offers everything that fish has offer(after some customization of course), it has great documentation, community and active development. So my advice is to focus on zsh - I assure that it will be the best decision in the long run...

share|improve this answer
+1 for the point about current lack of community for fish. – Rob Wells Apr 5 '10 at 14:37
Thanks for the link. The comments are very instructive too. – Julien Nicoulaud Apr 5 '10 at 15:10
2  
The original developer is inactive but the unofficial fork(s) at github.com/benhoskings/fish/network have are picking up pace; the community is small but helpful. – Beni Cherniavsky-Paskin Apr 6 '10 at 18:21

I had to be dragged kicking and screaming to use zsh at a previous job after many years of bash. But when I saw the features available in zsh and the compatibility with bash I was hooked. Now I've had to revert to bash and I miss many of the advanced features of zsh.

I'd head towards zsh for the following reasons:

  1. As Bozhidar pointed out, pick a shell with an active community around it and fish, for the time being at least, seems to lack that large community support aspect.
  2. I'm not sure that fish's way of finishing all blocks with an end statement is such a good idea. For large scripts, having 'fi', 'esac', 'done', etc. as block terminators lets me see the block ends logically without having to rely on indentation or, heaven forbid, block comments.
  3. Given the jump in syntax, heading down the 'fish' path will not allow easy understandability for other people who are used to bash type shells.
  4. Fish seems to be heavily driven by a single person which may be a problem for bug fixes and feature requests.

My advice would be to use zsh and keep an eye on fish to see if it gains momentum.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.