Filtres et caractères spéciaux
Filtres
Certains caractères spéciaux ou métacaractères sont interprétés par le shell comme des filtres, pour permettre de déterminer une liste de fichiers suivant ces filtres:
- Le signe * permet de remplacer par toutes chaînes de caractères.
- Le signe ? permet de remplacer un caractère quelconque.
- […] désigne un caractère de l’ensemble précisé.
[0123456789] veut dire que le caractère à l’emplacement
précisé doit appartenir à l’ensemble des chiffres
de la liste. Cette liste peut-être écrite avec [0-9]. L’ensemble
des caractères alphanumériques peut être décrit par
[0-9A-Za-z]. Une liste peut être précédée par un
« ! », ce qui exclut alors ces caractères.
Exemple de commande : ls fic.dat.1[5-9] = ls fic.dat.1[56789] et affichera les
fichier fic.dat.15 … à 19.
Lorsqu’on
utilise ces filtres, l’interpréteur de commande effectue le remplacement
de ces filtres par une liste des fichiers correspondant à ces filtres,
liste qui sera ensuite soumise à la commande comme une suite d’arguments.
Caractères spéciaux
Il est possible d’afficher ou d’utiliser les caractères
spéciaux en les faisant précéder par le caractère
« \ ».
Ce caractère permettra aussi de prolonger une commande sur plusieurs
lignes avant ‘enter’.
Pour tout accès à un fichier commençant par un ., ce caractère devra alors obligatoirement être précisé avant le filtre. Un point peut être utilisé pour séparer des informations.
Le point virgule ( ;) permet de concaténer sur une même ligne plusieurs commandes.
Les autres caractères spéciaux sont <, > (redirection),
| (pipe) et & (processus en tâche
de fond ou arrière plan) qui seront étudiés plus loin.
( cmde ) permet d'exécuter la commande dans un sous-shell
" ... " le texte sera affiché après remplacement des
caractères \ , $ et `
' ... ' le texte sera affiché sans aucun remplacement des caractères
spéciaux contenu dans ce texte
` ... ` substitution de commande, exécute la commande et remplace par
la valeur du résultat de la sortie standard