Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
doc:programmation:shell:avancee [01/10/2013 00:14] captnfab [Les fonctions] |
doc:programmation:shell:avancee [24/07/2024 02:12] (Version actuelle) Jean-Pierre Pinson [Boucles et instructions conditionnelles] |
||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
* Commentaires : //Faire des choses compliquées avec votre shell.// | * Commentaires : //Faire des choses compliquées avec votre shell.// | ||
* À savoir : [[:doc:programmation:shell:]] | * À savoir : [[:doc:programmation:shell:]] | ||
- | * Suivi : {{tag>en-chantier à-tester}} | + | * Suivi : |
- | * Création par **captnfab** 30/09/2013 | + | * Création par [[user>captnfab]] le 30/09/2013 |
- | * Testé par <...> le <...> FIXME | + | * Testé par [[user>smolski]] le 01/10/2013 |
- | * Commentaires sur le forum : [[url | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) FIXME | + | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?pid=68350 | ici]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) |
- | === Nota === | ||
- | Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | ||
Ligne 58: | Ligne 56: | ||
Pour exécuter ''commande1'' si ''condition'' est vraie, et ''commande2'' sinon, la syntaxe est la suivante : | Pour exécuter ''commande1'' si ''condition'' est vraie, et ''commande2'' sinon, la syntaxe est la suivante : | ||
- | <code user>if condition; | + | <code>if condition; |
then | then | ||
commande1; | commande1; | ||
Ligne 74: | Ligne 72: | ||
echo 'Je suis dans le faux' | echo 'Je suis dans le faux' | ||
fi</code> | fi</code> | ||
+ | |||
+ | Le copié/collé puis la validation de cette instruction vous donnera : | ||
<code>Je suis dans le vrai.</code> | <code>Je suis dans le vrai.</code> | ||
+ | |||
+ | //Ce qui n'est donc pas un mensonge !// ;-) | ||
D'autres exemples utilisant les conditions prédéfinies : | D'autres exemples utilisant les conditions prédéfinies : | ||
Ligne 96: | Ligne 98: | ||
==== Boucle tant que ''while'' ==== | ==== Boucle tant que ''while'' ==== | ||
- | <code user>while condition; | + | <code>while condition; |
do | do | ||
commande; | commande; | ||
Ligne 105: | Ligne 107: | ||
==== Boucle pour tout ''for'' ==== | ==== Boucle pour tout ''for'' ==== | ||
- | <code user>for i in "les fleurs" "le lapin" "le choux" "la salade" "le staff DF"; | + | <code user>for i in "les fleurs" "le lapin" "le chou" "la salade" "le staff DF"; |
do | do | ||
echo "J'aime $i." | echo "J'aime $i." | ||
done</code> | done</code> | ||
+ | ("in" est un mot-clé que l'on peut traduire par "au sein de") | ||
+ | |||
+ | |||
+ | ==== Sélecteur ''case'' ==== | ||
+ | |||
+ | <code user>read x ; case "$x" in | ||
+ | bonjour) | ||
+ | echo "Bonjour $USER" | ||
+ | ;; | ||
+ | aurevoir) | ||
+ | echo "Au revoir $USER" | ||
+ | ;; | ||
+ | *) | ||
+ | echo "Que voulez-vous dire par '$x' $USER ?" | ||
+ | esac</code> | ||
===== Les fonctions ===== | ===== Les fonctions ===== | ||
- | La syntaxe à utiliser dans le corps d'une fonction pour en récupérer les arguments est similaire à celle d'un fichier de script. Voir [[doc:programmation:shell:scripts]]. | + | La syntaxe à utiliser dans le corps d'une fonction pour en récupérer les arguments est similaire à celle d'un fichier de script.\\ |
+ | Pour une explication sur les différentes syntaxes voir : [[doc:programmation:shells:bash-les-differents-caracteres-speciaux#les-fonctions]]\\ | ||
+ | |||
+ | Rappel : | ||
- | Pour le reste, le corps d'une fonction se définit de manière assez simple. Notons que les arguments ne sont pas précisés entre parenthèses. | + | *Pour le reste, le corps d'une fonction se définit de manière assez simple. Notons que les arguments ne sont pas précisés entre parenthèses. |
- | L'appel de la fonction se fait ensuite comme l'appel d'un programme (cf. dernière ligne.) | + | *L'appel de la fonction se fait ensuite comme l'appel d'un programme (cf. dernière ligne.) |
<code user>function ma_fonction() | <code user>function ma_fonction() |