Hacker News new | past | comments | ask | show | jobs | submit login

I used to use zsh, long long ago. Then, when I became a sysadmin I switched to bash because of its ubiquity. I've been a bash user for well over a decade, until recently when I switched back to zsh.

During my switch, I learned a few things. First, it really wasn't particularly painful to switch all my personal scripts to zsh. I guess I probably wasn't using that many bashisms, and the few I was using were easily convertible to zsh syntax.

Second, day to day use of zsh does not feel all that much different from bash, and it really takes very little time to get used to if you already know bash. Of course, learning and getting comfortable with using some of the completely different zsh features will take time. I'm learning them in small bites.

Third, despite bash's ubiquity, I now wish I'd just used zsh all along, as they're really not different enough to hamper the use of bash when you need to use it.

Fourth, (depending on what you want to do) getting in to the nitty-gritty of configuring zsh is not always easy. zsh is thoroughly documented, but at the same time the documentation is not very user friendly, and there really aren't enough well-written introductory tutorials to quickly get you up to speed on doing more advanced things like writing your own completion widgets (or even editing existing ones, as they're so poorly commented). So if you want to customize zsh's more advanced features, be prepared to spend a lot of time with the man pages and user's guide.

On the other hand, there are some really helpful people on freenode's #zsh channel. With their help your transition to zsh should be pretty painless.

As to your particular concern about debugging existing bash scripts, I wouldn't worry too much about it. The shells are really not so different in syntax that you'd be completely lost when you wanted to debug some bash script. And if you do run in to problems with them, you could always ask for help on freenode's #bash.




One last thing you forgot to mention. zsh is rarely installed on remote hosts. bash is everywhere.

This is a game changer in my case where I can simply download my configuration, load it in the current session and start using all my scripts, aliases on a remote host in less than a minute.

Don't get me wrong, I'm using zsh for personal stuff and computers I have complete control over. But, if I have to write a script, I'll make sure it works with Bash first.


"I can simply download my configuration, load it in the current session and start using all my scripts, aliases on a remote host in less than a minute"

Nothing's stopping you from uploading zsh itself to your remote hosts along with your .zshrc.

Or just use the package manager to install zsh on those machines. On any modern Linux distro it's as easy as typing something like "emerge zsh" or "apt-get install zsh".


Thanks for that! It sounds like zsh is worth whatever small troubles it could cause.

I think that settles it. I'll be spending some time switching to zsh next time I have the chance.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: