Je suis un utilisateur de zsh depuis un certain temps (avant ce tcsh et avant ce csh). J'en suis assez content, mais je me demandais s'il existe des caractéristiques convaincantes de bash qui n'existent pas dans zsh. Et inversement, existe-t-il des fonctionnalités zsh qui n'existent pas dans bash? Mon sentiment actuel est que bash est meilleur:
- Si vous le connaissez déjà et que vous ne voulez pas apprendre une nouvelle syntaxe.
- Il existera par défaut sur la plupart des machines * nix, alors que zsh peut être une installation supplémentaire.
N'essayant pas de commencer une bataille religieuse ici, c'est pourquoi je cherche simplement des caractéristiques qui n'existent que dans l'un des coquillages.
Réponses:
zsh est pour les vulcans. ;-)
Sérieusement: bash 4.0 a quelques fonctionnalités qui ne se trouvaient auparavant que dans zsh, comme ** globbing:
est équivalent à:
mais évidemment plus puissant.
D'après mon expérience, l'achèvement programmable de bash fonctionne un peu mieux que celui de zsh, du moins dans certains cas (compléter des paquets debian pour aptitude, par exemple).
bash doit
Alt + .
insérer!$
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:
la source
C-M-e
à « shell-expand-line », qui se développeraitcat `echo blubb | sed 's/u/a/'`
àcat blabb
etecho $SHELL
àecho /bin/bash
dans mon cas. En outre,C-x *
à "glob-expand-word", qui se développeraitrm *
.J'aimerais souligner que bash n'est pas installé par défaut sous FreeBSD, OpenBSD ou NetBSD, et qu'il n'est pas installé par défaut sous Solaris 10 (OpenSolaris l'a par défaut), la dernière fois que j'ai utilisé un système AIX, et ou Les serveurs HP-UX n’ont pas été installés par défaut non plus.
En outre, sur OpenSolaris / bin / sh n’est PAS bash. C'est ksh. Le plus gros problème que j'ai en tant que porteur de logiciel, ce sont les gens qui supposent que / bin / sh est bash et qu'il acceptera la syntaxe bash étendue. Bien que cela semble être le cas sur la plupart des distributions Linux, ce n'est pas le cas ailleurs et c'est vraiment ennuyant.
la source
Bien que je sois un utilisateur bash, je trouve l’une des fonctionnalités de zsh assez chouette: RPS1.
Rappelles toi:
Échantillon:
Lorsque vous utilisez quelque chose comme
Vous obtenez votre invite à gauche et le répertoire en cours poussé à droite. Il disparaît même lorsque la ligne actuelle devient trop longue! C'est parce que zsh est suffisamment intelligent pour donner une faible priorité à RPS1.
Vous pouvez voir une capture d'écran de cet exemple à l' adresse http://imgur.com/OAZhC .
la source
Zsh a une correction orthographique. Si vous êtes une lettre (ou plus) de côté, cela déterminera ce que vous vouliez dire.
Il a également une finition plus robuste des onglets, ce que j'aime bien.
Zsh dispose d'un utilitaire de configuration interactif qui vous permet de définir comment vous le souhaitez.
Certains tests de vitesse indiquent que zsh est plus rapide, mais je n’ai remarqué aucune différence.
la source
zsh
a même un paramètre permettant les types d'erreur «une lettre désactivée» pour l'utilisation du clavier Dvorak.Je ne connais aucune fonctionnalité de bash que zsh ne prend pas en charge. L'objectif de conception de zsh semble inclure la prise en charge des fonctionnalités ajoutées par bash.
J'utilise toujours bash au lieu de zsh. Je rencontre rarement des fonctionnalités convaincantes que zsh prend en charge, contrairement à bash. Des problèmes occasionnels liés à zsh au fil des années, ou inexistants sur certains systèmes, ont rendu inutile la transition.
Je peux enfin utiliser le même shell sur tous les systèmes Unix, cela ne vaut pas la peine de le casser pour des fonctionnalités que je n'utiliserai jamais.
Les fonctionnalités présentes dans zsh qui ne le sont pas dans bash semblent pour la plupart être mignonnes mais pas celles qui importent au quotidien.
la source
bash a de nombreuses fonctionnalités qui n'étaient auparavant que dans zsh. Vous pouvez désormais avoir «finalisation intelligente des onglets» avec bash, comme tous les utilisateurs d'ubuntu récents l'ont découvert.
la source
La substitution de processus et l'extension étendue sont les deux fonctionnalités qui me manqueraient le plus. Les paramètres d'invite sont également très intéressants: vous pouvez voir le niveau d'imbrication lorsque vous tapez des instructions complexes sur les lignes de commande. Le chargement automatique permet d'inclure de nombreuses fonctions dans chaque shell.
la source
Je suis un fan de zsh à cause du support du mode vi, mais je découvre qu'il n'est pas très utilisé. Je pense avoir lu que zsh aime utiliser les fonctionnalités populaires des autres shells et les combiner (les éléments spécifiques à bash et ceux spécifiques à csh sont tous deux disponibles en zsh).
Quelqu'un a également dit que je modifiais mon facteur geek en utilisant zsh, mais je ne peux ni confirmer ni infirmer cette rumeur.
la source
Popularité, #bash 430 utilisateurs. #zsh 123 utilisateurs. Je crois que le site Web de zsh offre une bonne comparaison de zsh avec d’autres coques. zsh a un meilleur support du mode vi.
la source
Bash utilise la même syntaxe pour if et while, qui peuvent être utilisés dans les scripts / bin / sh de la ligne de commande.
Dans zsh, la syntaxe est différente. Pour utiliser efficacement zsh, vous devez vous souvenir des deux, si vous utilisez une instruction if ou while sur votre ligne de commande.
la source
if [[ $test = "test" ]]; then echo "success"; else echo "failure"; fi
à la fois la ligne de commande et un script, et cela a fonctionné comme prévu dans les deux cas. Il semblerait donc que vos faits ne soient pas clairs.