Funcionalidades únicas do bash em comparação com o zsh

65

Eu tenho sido um usuário zsh por algum tempo (antes daquele tcsh e antes daquele csh). Estou muito feliz com isso, mas queria saber se existem recursos convincentes de bash que não existem em zsh. E, inversamente, existem recursos zsh que não existem no bash. Minha sensação atual é que bash é melhor:

  • Se já o conhece e não quer aprender nova sintaxe.
  • Ele existirá na maioria das máquinas * nix por padrão, enquanto o zsh pode ser uma instalação extra.

Não tentando iniciar uma batalha religiosa aqui, e é por isso que estou apenas procurando recursos que existem em apenas um dos shells.

    
por Tim 05.05.2009 / 22:38

10 respostas

40

zsh é para vulcões. ; -)

Sério: O bash 4.0 tem alguns recursos encontrados anteriormente apenas em zsh, como ** globbing:

% ls /usr/src/**/Makefile

é equivalente a:

% find /usr/src -name "Makefile"

mas obviamente mais poderoso.

Na minha experiência, a conclusão programável do bash funciona um pouco melhor que a do zsh, pelo menos em alguns casos (completando pacotes debian para o aptitude, por exemplo).

o bash tem Alt + . para inserir !$

zsh has expansion of all variables, so you can use e.g.

%pr_e%

for this. zsh can also expand a command in backtics, so

%pr_e%

yields

%pr_e%

I find it very useful to expand rm * , como você pode ver o que seria removido e pode talvez remover um ou dois arquivos do comando para evitar que eles sejam excluídos.

Também é bom: usar a saída de comandos para outros comandos que não lêem stdin, mas esperam um nome de arquivo:

% rm !$<Tab>

Pelo que eu li, o bash-completion também suporta a conclusão de nomes de arquivos remotos sobre o ssh, se você usar o ssh-agent, que costumava ser um bom motivo para mudar para o zsh.

Os aliases em zsh podem ser definidos para trabalhar na linha inteira em vez de apenas no começo:

% cat 'echo blubb | sed 's/u/a/''<Tab>
    

por 09.08.2009 / 22:13
16

Eu gostaria de salientar que o bash não é instalado por padrão no FreeBSD, OpenBSD ou NetBSD, e também não é instalado por padrão no Solaris 10 (o OpenSolaris o tem como padrão), da última vez que usei um AIX e / ou servidores HP-UX também não foram instalados por padrão.

Além disso, no OpenSolaris / bin / sh NÃO é bash. É ksh. Os maiores problemas que tenho como portador de software são pessoas que assumem que / bin / sh é bash e que aceitará a sintaxe estendida do bash. Embora isso pareça ser o caso na maioria das distribuições Linux, não é o caso em outros lugares e é realmente irritante.

    
por 24.05.2009 / 02:40
12

Embora eu seja um usuário bash, eu acho um dos recursos do zsh bem legal: RPS1.

Lembre-se:

  • PS1: o prompt alinhado à esquerda
  • RPS1: o prompt alinhado à direita

Amostra:

Ao usar algo como

PS1=’%B(%h) %m%#%b ‘
RPS1=’(%20<…<%~)'

Você recebe o seu prompt à esquerda e o diretório atual é empurrado para a direita. Ele até desaparece quando a linha atual está ficando muito longa! É porque o zsh é inteligente o suficiente para dar baixa prioridade ao RPS1.

Você pode ver uma captura de tela deste exemplo no link .

    
por 25.11.2010 / 14:31
9

Zsh tem correcção ortográfica. Se você estiver com uma carta (ou mais) desligada, descobrirá o que você quis dizer.

Ele também tem uma conclusão de tabulação mais robusta, que eu gosto.

O Zsh tem um utilitário de configuração interativo para definir como você gosta.

Alguns testes de velocidade dizem que o zsh é mais rápido, mas eu não notei nenhuma diferença.

    
por 06.05.2009 / 22:05
6

Eu não sei de nenhum recurso bash que o zsh não suporte. O objetivo do design do zsh parece incluir o suporte a quaisquer recursos que o bash adicione.

Eu ainda uso bash em vez de zsh. Eu raramente encontro recursos atraentes que o zsh suporta que o bash não suporta. Problemas ocasionais com o zsh ao longo dos anos, ou não existem em certos sistemas, não valeram a pena fazer a transição.

Eu posso finalmente usar o mesmo shell em cada sistema Unix, não vale a pena quebrar isso para recursos que eu nunca usarei.

Os recursos presentes no zsh que não estão presentes no bash parecem ser, na maioria das vezes, fofos, mas não aqueles que são importantes no dia-a-dia.

    
por 24.05.2009 / 02:14
3
O

bash tem muitos recursos que costumavam ser apenas em zsh. Você pode ter 'conclusão de tabulação inteligente' com bash também agora, como qualquer usuário recente do ubuntu descobriu.

    
por 11.06.2009 / 13:58
1

Substituição de processos e globbing estendido são os dois recursos dos quais eu mais sentiria falta. As configurações de prompt são muito legais também - ver o nível de aninhamento quando você está digitando instruções complexas nas linhas de comando. O carregamento automático inclui muitas funções em cada shell viável.

    
por 16.05.2010 / 14:24
0

Sou fã do zsh por causa do suporte ao modo vi, mas estou descobrindo que ele não é muito usado. Eu acho que li que o zsh gosta de pegar recursos populares dos outros shells e combiná-los (então coisas específicas do bash e coisas específicas do csh estão disponíveis em zsh).

Alguém também disse que estou flexionando meu fator geek usando zsh, mas não posso confirmar ou negar esse boato.

    
por 05.05.2009 / 22:59
-1

Popularidade, #bash 430 usuários. #zsh 123 usuários. Eu acredito que o site zsh tem uma boa comparação de zsh com outros shells. O zsh tem melhor suporte ao modo vi.

    
por 05.05.2009 / 22:46
-1

O Bash está usando a mesma sintaxe para if e while que pode ser usada em scripts / bin / sh na linha de comando.
Dentro de zsh a sintaxe é diferente. Efetivamente usando zsh você tem que lembrar de ambos, se você estiver usando uma declaração if ou while em sua linha de comando

    
por 13.06.2009 / 00:16

Tags