tion que l’on souhaite déclencher, il est souvent plus efficace de se passer de cet intermédiaire complexe et d’opérer plus directement avec le système. **Cet interpréteur plus direct est le shell**.
===== Programme applicatio... seur. Sur cet ensemble se greffent des composants plus ou moins « externes », dits périphériques, qui so
acaractères) sont utilisés:
^ * | Désigne un ou plusieurs caractères quelconques |
^ ? | Désigne ex... t 126. C’est la classe [:graph:] avec l’espace en plus. |
^ [:space:] | Correspond aux blancs (espace, ... t possible de concevoir des expressions et motifs plus élaborées via l'activation de l'option **extglob*... raitement par lot des fichiers à l’aide de motifs plus sophistiqués mais peut-être plus délicats à mettr
pe_tableau|tableaux en bash]];
* Voir les notes plus concernant le traitement des [[cours:informatique... seule:
<code bash>
# La variable mavar3 ne sera plus modifiable
readonly mavar3
</code>
<note>
Lorsqu... riable est définie en lecture seule, elle ne peut plus être modifiée ou supprimée dans le shell courant ... rtoires à parcourir pour trouver une commande. Si plusieurs versions d'une même commande existe, c'est c
ou même de rechercher du texte à l’intérieur. De plus, l’aide affichée est souvent en anglais et ce mêm... onséquent, les pages du manuel sont regroupées en plusieurs sections :
- commandes pour l’utilisateur,... page de manuel ====
Une page de manuel contient plusieurs parties/:
* NOM,
* SYNOPSIS,
* DESCRIP... située à l’intérieur de [ ] peut être répétée (en plus d’être facultative). |
===== Autres outils pour
e ou "boucle" un même bloc de commandes s’exécute
plusieurs fois. On dit que la boucle fait plusieurs tours. Le nombre de
tours qui sera réalisé est déterminé... les paramètres spécifiés pour celle-ci. Il existe plusieurs types de boucles. Nous allons étudier ici les deux plus courantes. Il s’agit:
* De l’itération conditio
ne **type** permet d'afficher le type d'une ou de plusieurs commandes
</note>
<code bash>
$ type ls man... n/man
* date est un hash permettant de relancer plus rapidement un prochain appel à la commande extern... peu explicite, et elles ont souvent un équivalent plus long qui sera préfixé par deux tirets.
===== Nor... Ceci pose des problèmes à l’utilisation d’Unix et plus généralement de portage des scripts shell entre l
===
La commande if permet une écriture à la fois plus lisible et des contrôles plus élaborés. Il s’agit de conditionner l’exécution d’une suite de commandes ... filtre n’importe quelle chaîne de caractères.
Si plusieurs cas doivent mener à l’exécution d’une même liste de commandes on peut écrire plusieurs motifs séparés par une barre verticale:
<co
traitements dans une zone unique qu’on utilise à plusieurs reprises dans le code. L'utilisation des fon... Le nom de l’alias est remplacé par la commande ou plus généralement par la chaîne de caractères associée... u .profile qui permettent d’avoir des traitements plus complexes. Les fonctions définies ainsi sont des ... nce entre un script et une fonction. Il en existe plusieurs mais nous n’allons pas entrer dans les détai
mmande **split** permet de découper un fichier en plusieurs morceaux. Les fichiers créés seront nommés à... rt -n -k 2 /path/to/file.txt
# On peut effectuer plusieurs tri successifs
# Ici un tri de valeurs numér... * est similaire mais permet de faire une jointure plus élaborée en précisant les champs en correspondanc
être inhibibé.
<note>
Il est possible d'appeler plusieurs fois l'option **-exec**
</note>
Ci dessous ... **s** pour substitute
* **g** permet de répéter plusieurs fois le traitement sur la même ligne.
<code... s'applique à la recherche de fichiers dans un ou plusieurs répertoires.
Quelle est la commande pour t
utes les valeurs comme des chaînes de caractères. Plusieurs solutions existent pour effectuer des opérat... s avantages:
* Les termes de l’expression n’ont plus besoin d’être séparés par des espaces.
* L’usag... comme une commande sur une ligne de commande. De plus elle n’affiche aucun résultat.
</note>
La comman
h}}
====== Éléments d'un script shell ======
En plus du mode interactif, le shell dispose d'un mode sc... l’appel. Pour les variables positionnelles ayant plus de un chiffre, il faut avoir recours aux accolade... 6 7 8 9 a b
$ echo $1 $9 ${10}
1 9 a
</code>
En plus des variables positionnelles, des variables spéci
ième commande à partir de la fin de l'historique (plus récente)
!-3
# rappeler la commande d'indice 243... titution a lieu une seule fois.
# Pour la répéter plusieurs fois, introduire le symbole g
touch !-2:$:gs