La première (4.2.7) concerne la branche stable et la seconde (4.3.5) concerne la branche de développement.
La nouvelle version stable apporte - par rapport à la vieillissante branche 4.2 - essentiellement des corrections de bugs et la mise à jour des fonctions de complétion.
La version dite instable apporte de nouvelles fonctionnalités et ses habituelles mises à jours des fonctions de complétion. Elle est en réalité d'une grande stabilité et est déjà distribuée dans la plupart des distributions GNU/Linux et Unix libres, comme version zsh par défaut.
Pour rappel zsh est un interpréteur de commandes libre sous licence zsh (comparable à la licence BSD), disposant de fonctionnalités de complétion programmables et avancées, offrant des modules haut niveau pour la programmation : fonctions TCP/IP, support des REGEX, fonctions FTP, fonctions de manipulations de dates et pouvant émuler le comportement d'autres interpréteurs de commande : ksh, bash, ash, csh. Alors que la version 4.3 apportait déjà beaucoup de nouveautés parmi lesquelles :
- Support de l'unicode ;
- Le support des exceptions pour la programmation de scripts : throw/catch ;
- La comparaison temporelle entre les fichiers utilisant les timestamp permettant ainsi une précision à la nanoseconde au lieu de la seconde ;
- l'amélioration des compatibilités avec les shells POSIX et bourne.
La version 4.3.5 en rajoute beaucoup elle aussi :
- Nouveau module zsh/curses Permettant la programmation native d'interface graphiques utilisant la bibliothèque curses/ncurses ;
- Amélioration du modules zsh/datetime qui permet la gestion du temps et des dates avec les fonctions strftime et la variable d'environnement $EPOCHSECONDS ;
- Nouvelle fonction calendar similaire à la fonction unix éponyme, mais avec beaucoup plus de fonctionnalités ;
- La notion de "feature" permettant au chargement de renommer certaines fonctions zsh. Par exemple zsh fournit une module zsh/stat qui améliore et remplace la fonction stat, pour pouvoir utiliser les deux fonctions conjointement, il suffit de charger le module de la façon suivante :
zmodload -F zsh/stat b:zstat
ainsi la fonction stat pure zsh s'appellera zstat et non stat.
Aller plus loin
- zsh.org (13 clics)
- Annonce 4.2.7 (3 clics)
- Annonce 4.3.5 (2 clics)
- ZSH lovers (8 clics)
- ZSH sur dmoz (2 clics)
# Des exemples ?
Posté par Xavier Maillard . Évalué à 2.
Tu as des exemples de codes ? Qu'est-ce que ça peut donner dans la "vie de tous les jours" ?
J'ai toujours eu une certaine attirance de ZSH mais toutes ces extensions étant purement zsh, point de salut lorsqu'on doit repasser à KSH ou même BASH. C'est dommage :/
[^] # Re: Des exemples ?
Posté par Bapt (site web personnel) . Évalué à 10.
La doc zsh est très bien foutu, complète et disponible sous forme pdf, html, man ou GNU info.
Le site n'est pas encore à jour concernant les dernières versions de la doc. Mais les distributions distribuent la doc à jours avec zsh (c'est au moins le cas avec gentoo - le use doc -)
Sinon le problème que tu évoques est identique quand tu code pure bash ou pure ksh, tu ne peux pas l'utiliser sur d'autres shells, (sauf zsh grace aux fonctions emulate)
Si tu veux que ton code marche partout, il suffit de faire du code POSIX.
[^] # Re: Des exemples ?
Posté par Bapt (site web personnel) . Évalué à 7.
# feature
Posté par 태 (site web personnel) . Évalué à 3.
Sinon, il y a un repository de scripts zsh qui font tout et le café quelque part ? J'aurais deux-trois trucs qui peuvent intéresser des gens à soumettre. Et j'aimerais voir comment les autres programment en zsh...
[^] # Re: feature
Posté par Bapt (site web personnel) . Évalué à 2.
Pour la notion de feature je ne sais pas du tout, mais concernant le module datetime, il n'y a qu'une seule fonction (si je ne me trompe pas) : strftime, et une variable d'environnement, donc tu n'as pas besoin de ne charger qu'une partie du module.
Pour la programmation, moi je m'efforce quand je fait du zsh, de ne faire que du pure zsh (cad pas de grep cat sed ou autre). Sinon je ne fait que du POSIX, donc pas spécifique zsh (mais je pousse le posix y compris dans les commandes associées awk, sed par exemple, pas d'extention GNU, sinon ce n'est plus portable).
Pour plus d'informations sur zmodload :
man zshbuiltins section zmodload, ou
http://baptux.free.fr/zsh/zsh_17.html recherche zmodload (plus précisément la partie -F)
[^] # Re: feature
Posté par Pierre Jarillon (site web personnel) . Évalué à 2.
Il y a quelques années, j'ai vu un Unix commercial (IBM ?) qui se disait conforme GNU.
Ceci est le premier exemple qui m'est venu à l'esprit Il est assez facile d'en trouver d'autres. Les extensions GNU n'ont pas été faites pour le fun ou des raisons commerciales mais seulement pour répondre à de vrais besoins des utilisateurs.
[^] # Re: feature
Posté par Bapt (site web personnel) . Évalué à 9.
Je travaille régulièrement sur des AIX, HP-UX, Solaris, Linux et BSD, récents ou pas, donc je ne peux pas me fier aux extensions GNU, donc je fais du POSIX quand je veux des scripts portables. Sinon je fais du zsh (comme j'installe zsh sur la majeure partie de mes serveurs, ça devient tout aussi portable et beaucoup plus agréable à utiliser).
Exemples de petites choses qui ne sont pas portable : cp -a (toujours utiliser cp -dpPR à la place) sed -i, plein de fonctions gawk (que l'on ne retrouve ni dans mawk, ni dans nawk) etc.
[^] # Re: feature
Posté par domiLeChauve . Évalué à 0.
Sinon oui effectivement, il vaut mieux faire du POSIX de base pour être le plus portable possible.
[^] # Re: feature
Posté par Bapt (site web personnel) . Évalué à 3.
De plus les plateformes de prod sont installés avec des socles minimum, donc pas de rajout (pas de zsh non plus) donc mes scripts qui iront en prod sont en pure POSIX. Ceux en zsh, sont ceux qui me facilitent la vie et ne vont pas en prod.
[^] # Re: feature
Posté par domiLeChauve . Évalué à -1.
Quant aux socles minimum installés en prod, tu dis qu'il n'y a pas de rajout possible, sauf que désolé de te contre-dire encore une fois, mais pour mettre en prod une machine (là où je bosse par exemple) il y a toujours des rajouts, je pense notamment aux outils d'instrumentation, logiciels de sauvegarde (TSM etc...), menu d'exploit etc...ces rajouts font l'objet d'un packaging standardisé et s'installe automatiquement après le déploiement de l'OS, c'est ce que l'on appelle l'industrialisation des infrastructures.
Donc si ton besoin est de disposer de zsh only, alors remonte ton besoin aux équipes qui gèrent ça chez toi pour l'intégrer dans un master, si ce n'est pas possible alors ok pour le POSIX
[^] # Re: feature
Posté par Bapt (site web personnel) . Évalué à 4.
En ce qui concerne mes scripts ZSH ce sont des scripts qui me concerne moi et qui n'iront jamais en prod. Ils me facilitent la vie dans la gestion de mes machines au quotidien.
De plus en prod, tu n'as pas toujours la main sur les socles de productions, il y a beaucoup de plate-forme livré clefs en main, ou tu ne peux pas demander le rajout de composant GNU ou zsh ou autres que ceux décidés par le fournisseur, en recette ou en dev ce n'est pas la même chose, c'est généralement plus souple (quoique pas toujours). Donc pour résumer ce que je disais :
POSIX pour la portabilité, réutilisabilité, zsh pour me faciliter la vie.
PS: Dans certains contexte très rares, j'ai des scripts zsh en prod.
[^] # Re: feature
Posté par shbrol . Évalué à 2.
J'utilise a peu pres les memes OS (aujourd'hui AIX, HP-UX et Linux, avant Solaris). Sur les plateformes de developpement, j'installe systematiquement un certain nombre d'outils GNU, en particulier gmake et bash, parce qu'entre se limiter au plus petit denominateur commun des outils parfois antédiluviens fournis par l'OS, et installer une version plus agréable et disponible partout, le choix est vite fait.
Sur les plateforme de prod, par contre, c'est du brut de constructeur, donc les scripts doivent etre portables...
# Slackware
Posté par domiLeChauve . Évalué à -1.
[^] # Re: Slackware
Posté par Nerdiland de Fesseps . Évalué à 2.
$ src2pkg zsh-4.3.5.tar.bz2
M'enfin je pense qu'un paquet officiel sortira bientôt. Slackware, la meilleure distribution, oui, mais de ceux qui l'ont choisie. On n'est pas encore vendredi ^^
[^] # Re: Slackware
Posté par Xavier Maillard . Évalué à 1.
Par contre, il y a un truc qui m'échappe. Si je change mon login pour zsh, la session ne dure pas plus de 1/100000 eme de seconde :/
(chsh -s /bin/zsh xma => /bin/zsh n'est pas un shell valide)
[^] # Re: Slackware
Posté par Xavier Maillard . Évalué à 1.
Ca fonctionne maintenant.
[^] # Re: Slackware
Posté par Bapt (site web personnel) . Évalué à 2.
[^] # Re: Slackware
Posté par Xavier Maillard . Évalué à 1.
Mais évidemment, je vais le reprendre et le soumettre au Sieur.
Maintenant je vais tenter le douloureux et très lent (ré)apprentissage du zsh, pour voir si je peux (re)vivre avec.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.