This is *not* a flame. This list is kind of touchy lately. It's just that I'm a big fan of bash (with vi editting mode instead of emacs) and if there's a better shell out there I'd like to give it a try. It just doesn't sound like zsh has anything to offer that bash doesn't.
Comments anyone? Richard Sharman wrote: > > Thought writes: > > Hey, what do you guys think is better, zsh or bash? > > > > I prefer zsh, I find it easier to work with. For a while it had > several features missing from bash (and most shells), but bash has > caught up on many of them. It still has some features which don't > seem to be in bash (though perhaps it's just a matter of finding out > how to setup bash): > * ability to line edit a multi-line command. I find this very > useful. Say you've just typed in a multi-line "for"..."done" line > and need to fix a type or redo it slightly differently. Under zsh > you simply using ^p like any single line. Add this to your .bashrc if you;d like this feature in bash too: #put multi-line commands together as one line export command_oriented_history= > * the "vared" builtin -- allows you to line edit a variable > (e.g. "vared path"). Doesn't "export PATH=$PATH:<other_stuff>" do the same? > * allows you to defined what a "word" is (e.g. for using > backward-word). Using the vared command makes it nice and simple, > just do "vared WORDCHARS". Is this different from `B' when editing command lines in bash? > * accepts both csh and sh syntax, which is useful if you're used to a > tcsh environment at work, or just like some of the csh things like > "prompt" instead of "PS1", or using a wordlist $path rather than a > colon-separated $PATH. Bash also accepts both csh and sh syntax. > * ability to try out an interactive command with "M-x" without having > to specifically bind it. I don't know what this means but it may be useful. > * the "infer next" command. (Hmmm, this seems to be broken now; > it used to work and was very nice.) (Bash now has something limilar, > operate-and-get-next (C-o). I like zsh's approach where you use this > command when you want the next command; bash requires you to think > ahead and realize before submitting that you will want the next command.) Again I don't know what this means. Is this just `n' in bash? > * automatic completion on variables names, e.g. type > "export DISP" and hit tab. (I just checked, in bash you can use > Esc-$ to specifically complete a variable name; in zsh the default > compctl (completion) has been setup to complete for a variable name > if the command is "export". While the zsh seemed easier, I guess > the bash approach allows you to control it more.) > > However, bash has some advantages: > > * better built-in help (zsh has some if you set it up as suggested, > but bash seems better and works out-of-the-box) > * Ability to interactively define keyboard macros (similar to within > emacs) > * Bash uses the GNU readline which can be used from any C-program. > > Actually, I think the last point is probably a very important one. > Both shell's line editing is good, but bash's readline can be included > in any C program. By putting your preferences in your ~/.inputrc file > you can thus customize many programs in one fell swoop. > > In any case, I would say try them both, and then pick one and read the > manual or info and get familiar with it. And every so often read it > again to pick some more hints. > > There are 2 programs that really pay off putting a bit of effort into > learning: the shell you use and the editor you use. Picking a "simple > and easy to use" editor is a short sighted approach. Pick a powerful > editor and invest some time in learning it. (You don't have to learn > it all, and you don't have to learn all that much at first, either.) > It will really pack off. And I think the same philosophy applies, > perhaps to a lesser degree, to the shell you use. > > Richard