Just Another Geek!/ blog/ posts/ Astuces zsh

Pour mettre une chaine de caractère en minuscule :

% echo ${(L):-Vive ZSH}
vive zsh

Pour mettre en majuscule :

% echo ${(U):-Vive ZSH}
VIVE ZSH

Pour mettre en lettres capitales les premières lettres de chaque mot :

% echo ${(C):-vive zSH}
Vive Zsh

Ce qui donne les fonctions suivantes :

function lower () {
  echo ${(L)*}
}

function upper () {
  echo ${(U)*}
}

function capitalize () {
  echo ${(C)*}
}

Usage :

% capitalize ma chaine a moi
Ma Chaine A Moi

L'intéret de ces fonctions est de ne faire appel à aucun processus supplémentaire (Pas de fork(2) à réaliser pour lancer la commande tr(1) ou un interpréteur Perl/Python par exemple). En effet, on utilise le Paramater Expansion de zsh.