*/ Table des matières */ Introduction */ Grammaire *) Les modificateurs *) Les tableaux *) Les paramètres des tableaux *) Le globbing *) Le pattern matching */ Introduction ---------------------------------------------------------------------- Ceci est un message de rappel sur une partie des nombreuses fonctionnalités de ZSH, vous pouvez retrouver l'ensemble de ces informations (et même plus) sur le wiki, à l'url suivante : http://cli.asyd.net/home/shell/zsh/racine. Il esiste également un wiki anglophone dédié à ZSH disponible à l'adresse http://zshwiki.org/home/ ZSH est un shell voué pour une utilisation interactive, bien qu'il dispose de nombreuses fonctionnalités de scripting. La plupart des fonctionnalités des autres shell (bash, ksh, tsch) sont incorporés dans ZSH, le rendant donc (plus ou moins) compatible avec ceux ci. La grande force de ZSH réside avant tout dans son système de complétion très performant et très souple. Ce document est bien entendu ouvert à toute contribution, et n'hésitez pas à poser des questions qui permettront de l'enrichir. */ Grammaire ---------------------------------------------------------------------- *) Les modificateurs (Manual, 13.1.4) --8<-- % filename="/home/asyd/misc/messages/shell.txt" # dirname % echo ${filename:h} /home/asyd/misc/messages # basename % echo ${filaneme:t} shell.txt # suppression de l'extension % echo ${filename:r} /home/asyd/misc/messages/shell # basename + suppression de l'extension % echo ${filename:t:r} shell # supprimer tout sauf l'extension % echo ${filename:e} txt # majuscule % echo ${filename:u} /HOME/ASYD/MISC/MESSAGES/SHELL.TXT # miniscule % filename="logo.JPG" % echo ${filename:l} logo.jpg --8<-- Retrouver l'ensemble des modificateurs dans la section 13.1.4 *) Les tableaux Déclaration d'un tableau --8<-- % array=(1 2 3) % echo $array[1] 1 % echo $array[3] 3 --8<-- ! Attention, les indices 0 et 1 correspondent tous les deux au premier ! élément du tableau ! Diviser une chaîne de caractère en un tableau de mots --8<-- % string="Welcome to the real world, Neo" % words=(${=string}) echo $words[6] Neo --8<-- Vérifier si un élément est défini dans un tableau (Manual, 13.3) --8<-- % words=(bienvenue sur la liste shell@asyd.net) % [[ -n ${(M)words:#sur} ]] && echo 1 -> 1 % [[ -n ${(M)words:#dans} ]] || echo 0 -> 0 --8<-- *) Le globbing / Filename Expansion (Manual, 13.8.7) Les qualifieurs / Répertoire F Répertoire non vide . Fichier réel @ Lien symbolique = Socket p FIFO nommé * Fichier réel exécutable % Fichier périphérique %b Fichier périphérique mode bloc %c Fichier périphérique mode caractère r lecture autorisé pour l'utilisateur propriétaire w écriture autorisé pour l'utilisateur propriétaire x exécution autorisé pour l'utilisateur propriétaire A lecture autorisé pour le goupe propriétaire I écriture autorisé pour le groupe propriétaire E exécution autorisé pour le groupe propriétaire R lecture autorisé pour le reste du monde W écriture autorisé pour le reste du monde X exécution autorisé pour le reste du monde s bit setuid actif S bit setgid actif t bit sticky actif --8<-- # Utilisé un qualifieur % ls *(<qualifieur>) # Exemple % ls *(.) # Recherche résursive % ls **/*(.) --8<-- Les opérateurs * Match n'importe quel suite de caractère ? Un seul caractère [...] Match n'importe quel caractère de la suite entre [] [^...] Négation de [...] -- http://asyd.net/home/ - Home Page http://guses.org/home/ - French Speaking Solaris User Group