[zsh] Introduction

Bruno Bonfils asyd at asyd.net
Fri Sep 1 10:40:59 CEST 2006


*/ 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 at 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


More information about the Shell mailing list