Initiation au Korn Shell : comparons avec les autres shells

Magazine
Marque
GNU/Linux Magazine
Numéro
135
Mois de parution
février 2011


Résumé
La motivation ayant conduit à l'écriture de cet article résulte du constat suivant : la plupart des programmeurs Un*x utilisent les shells modernes en utilisant la syntaxe du Bourne Shell qui date de plus de 30 ans ou se tournent vers des langages comme Perl ou Python. Pendant très longtemps et pour des raisons de portabilité désormais non fondées, le Bourne Shell a été le shell de référence. Puis est venu le Korn Shell 88 présent dans tous les Unix commerciaux. Ce dernier a eu ensuite un successeur : le Korn Shell 93.

Ce shell est présent dans des distributions Linux Red Hat Entreprise Linux (RHEL), CentOS, dans OpenSolaris (et donc dans le futur Solaris 11) et OpenIndina, AIX, et on peut même l'utiliser sous Windows. On notera qu'au fil de ses versions bash, le shell standard des systèmes Linux intègre les fonctionnalités du Korn Shell, il reste néanmoins moins performant que ce dernier.

1. Les entrées/sorties en shell

Commençons par un code - exemple d'école - qui lit le fichier infile et le recopie dans le fichier outfile en transformant les majuscules en minuscules.

Avec le Bourne Shell, on procédera comme ceci :

while read line

do

 echo "$line" | tr 'A-Z' 'a-z'

done < infile > outfile

Avec la localisation des commandes, utiliser tr [[:upper:]] [[:lower:]] serait une écriture plus académique. Avec le Korn Shell, l'utilisation de tr n'est plus nécessaire. On fera simplement comme ceci :

# Une variable déclarée avec typeset -l assure la conversion en

# minuscule lors de l'affectation de...

Cet article est réservé aux abonnés. Il vous reste 94% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite