Eu sou um usuário do zsh há algum tempo (antes desse tcsh e antes desse csh). Estou muito feliz com isso, mas fiquei imaginando se existem recursos interessantes do bash que não existem no zsh. Por outro lado, existem recursos zsh que não existem no bash. Minha sensação atual é que o bash é melhor:
- Se você já conhece e não quer aprender nova sintaxe.
- Por padrão, ele existe na maioria das máquinas * nix, enquanto o zsh pode ser uma instalação extra.
Não estou tentando iniciar uma batalha religiosa aqui, e é por isso que estou apenas procurando por recursos que existem em apenas uma das conchas.
Respostas:
zsh é para vulcanos. ;-)
Sério: o bash 4.0 tem alguns recursos anteriormente encontrados apenas no zsh, como ** globbing:
é equivalente a:
mas obviamente mais poderoso.
Na minha experiência, a conclusão programável do bash é um pouco melhor que a do zsh, pelo menos em alguns casos (completando pacotes debian para o aptitude, por exemplo).
bash tem
Alt + .
que inserir!$
zsh has expansion of all variables, so you can use e.g.
for this. zsh can also expand a command in backtics, so
yields
I find it very useful to expand
rm *
, as you can see what would be removed and can maybe remove one or two files from the commmand to prevent them from being deleted.Also nice: using the output from commands for other commands that do not read from stdin but expect a filename:
From what I read bash-completion also supports completing remote filenames over ssh if you use ssh-agent, which used to be a good reason to switch to zsh.
Aliases in zsh can be defined to work on the whole line instead of just at the beginning:
fonte
C-M-e
para "shell-expand-line", que seria expandidocat `echo blubb | sed 's/u/a/'`
paracat blabb
eecho $SHELL
para oecho /bin/bash
meu caso. Além disso,C-x *
para "glob-expand-word", que seria expandidorm *
.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 o AIX, ou Servidores HP-UX, também não foi instalado por padrão.
Além disso, no OpenSolaris / bin / sh NÃO é o bash. É ksh. Os maiores problemas que tenho como portador de software são pessoas que assumem que o / bin / sh é bash e que ele aceita a sintaxe estendida do bash. Embora esse pareça ser o caso na maioria das distribuições Linux, não é o caso em outros lugares e é realmente irritante.
fonte
Embora eu seja um usuário do bash, acho muito interessante um dos recursos do zsh: RPS1.
Lembrar:
Amostra:
Ao usar algo como
Você recebe sua solicitação à esquerda e o diretório atual pressionado à direita. 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 em http://imgur.com/OAZhC .
fonte
Zsh tem correção ortográfica. Se você receber uma carta (ou mais) de folga, ele entenderá o que você quis dizer.
Ele também possui uma conclusão de guia mais robusta, da qual eu gosto.
O Zsh possui um utilitário de configuração interativo para configurá-lo da maneira que desejar.
Alguns testes de velocidade dizem que o zsh é mais rápido, mas não notei nenhuma diferença.
fonte
zsh
ainda tem uma configuração para permitir erros de digitação com 'uma letra de fora' para o uso do teclado Dvorak.Não conheço nenhum recurso do bash que o zsh não suporte. O objetivo do design do zsh parece incluir o suporte a todos os recursos adicionados pelo bash.
Eu ainda uso o bash em vez do zsh. Eu raramente encontro recursos interessantes que o zsh suporta que o bash não. Problemas ocasionais com o zsh ao longo dos anos, ou ele não existe em certos sistemas, fizeram com que não valesse a pena fazer a transição.
Finalmente posso usar o mesmo shell em todos os sistemas Unix, não vale a pena quebrar isso por recursos que nunca vou usar.
Os recursos presentes no zsh que não estão presentes no bash parecem ser bonitos, mas não os que importariam no dia-a-dia.
fonte
O bash possui muitos recursos que costumavam estar apenas no zsh. Você pode ter 'conclusão de guia inteligente' agora com o bash, como qualquer usuário recente do ubuntu descobriu.
fonte
Substituição de processo e globbing estendido são os dois recursos que eu mais sentiria falta. As configurações de prompt também são muito legais - ver o nível de aninhamento quando você digita instruções complexas nas linhas de comando. O carregamento automático torna viável a inclusão de muitas funções em cada shell.
fonte
Sou fã do zsh por causa do suporte ao modo vi, mas estou descobrindo que ele não é muito usado. Acho que li que o zsh gosta de pegar recursos populares de outros shells e combiná-los (para que coisas específicas do bash e específicas do csh estejam disponíveis no zsh).
Alguém também disse que estou flexionando meu fator nerd usando zsh, mas não posso confirmar ou negar esse boato.
fonte
Popularidade, #bash 430 usuários. #zsh 123 usuários. Acredito que o site zsh tenha uma boa comparação do zsh com outros shells. O zsh possui melhor suporte ao modo vi.
fonte
O Bash está usando a mesma sintaxe para if e while como isso pode ser usado em scripts / bin / sh na linha de comando.
Dentro do zsh, a sintaxe é diferente. Usando o zsh efetivamente, você precisa se lembrar de ambos, se estiver usando uma instrução if ou while na linha de comando
fonte
if [[ $test = "test" ]]; then echo "success"; else echo "failure"; fi
a linha de comando e um script, e funcionou como esperado nos dois casos. Portanto, parece que você não tem seus fatos corretos.