logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:programmation:shells:script-bash-etat-de-sorie-et-les-tests [05/06/2014 08:41]
Hypathie [État de sortie et les tests]
doc:programmation:shells:script-bash-etat-de-sorie-et-les-tests [10/07/2014 13:35]
Hypathie [Script bash : état de sorie et les tests]
Ligne 1: Ligne 1:
-====== ​script ​bash : état de sorie et les tests ======+====== ​Script ​bash : état de sorie et les tests ======
  
-  ​* Objet : du tuto FIXME +  * Niveau requis : {{tag>​débutant}}
-  ​* Niveau requis : FIXME {{tag>​débutant ​avisé}} +
-  * Commentaires : //Contexte d'​utilisation du sujet du tuto. // FIXME+
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
-  * Suivi : {{tag>en-chantier à-tester ​à-placer}} ​- FIXME Pour choisir, voir les autres Tags possibles dans [[:​atelier:#​tags|l'​Atelier]]. +  * Suivi : {{tag>​à-placer}} 
-    * Création par **Hypathie** 03/06/2014 +    * Création par [[user>Hypathie]] 18/03/2014 
-    * Testé par <...> le <...FIXME +    * Testé par <Hypathie> le <Juin 2014
-  * 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 : [[https://​debian-facile.org/​viewtopic.php?​pid=92203#​p92203 ​| Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
  
-**Nota : wiki n°5**+**Nota Les autres ​wiki :** 
 +  * [[atelier:​chantier:​debuter-avec-les-scripts-shell-bash]] 
 +  * [[atelier:​chantier:​script-bash-variables-arguments-parametres|script-bash-variables-arguments-parametres]] 
 +  * [[atelier:​chantier:​script-bash-detail-sur-les-parametres-et-les-boucles|modification de variable et de paramètre]]  
 +  * [[atelier:​chantier:​script-bash-enchainement-de-commandes-et-etat-de-sortie|script-bash-enchainement-de-commandes-et-etat-de-sortie]] 
 +  * ;-) 
 +  * [[atelier:​chantier:​script-bash-les-tableaux|script-bash-les-tableaux]] 
 +  * [[atelier:​chantier:​script-bash-les-fonctions|script-bash-les-fonctions]]
  
 Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! Contributeurs,​ les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !
Ligne 25: Ligne 30:
 blabla blabla
 </​code> ​ </​code> ​
-puis+
 <code user> <code user>
 echo $? echo $?
 </​code>​ </​code>​
-Retour : 
 <​code>​ <​code>​
 127 127
Ligne 42: Ligne 46:
  
 ==== L'​enchaînement conditionnel est fondé sur le code de retour==== ==== L'​enchaînement conditionnel est fondé sur le code de retour====
-**Parmi les opérateurs d'​enchaînement de commandes ​**+Parmi les opérateurs d'​enchaînement de commandes ​ci-dessous :​\\  ​
 (voir : [[atelier:​chantier:​bash-les-differents-caracteres-speciaux#​les-operateurs-de-controle|les opérateurs de contrôle]]) (voir : [[atelier:​chantier:​bash-les-differents-caracteres-speciaux#​les-operateurs-de-controle|les opérateurs de contrôle]])
 <​code>​ <​code>​
   ||    && ​   ;    <​retour-chariot>  ​   ||    && ​   ;    <​retour-chariot>  ​
 </​code>​ </​code>​
-**est basé utilise le code de retour :**+est basé utilise le code de retour : 
 + 
 +  - L'​opérateur ''&&''​ : avec cet opérateur, chaque commande d'une suite est exécuté l'une après l'​autre si le code retour de la première est 0 (c'​est-à-dire si elle a fonctionné).\\ ​
  
-  - L'​opérateur ​**"&&"​** : avec cet opérateur, chaque commande d'une suite est exécuté l'une après l'autre si le code retour de la première est 0 (c'​est-à-dire si elle a fonctionné).\\ +  - L'​opérateur ''​||'' : la commande suivante est exécutée ​si le code de retour de la première est différente de zéro, ​c'​est-à-dire si elle n'pas fonctionné. ​ 
  
-  ​- L'​opérateur **||** : la commande suivante est exécutée si le code de retour de la première est différente de zéro, c'​est-à-dire si elle n'a pas fonctionné.  ​+  * Exemple ​
  
-Exemple : soit le dossier "​Mon-dossier"​ non-vide; le dossier "​mon-dossier"​ vide; et le dossier "​mondossier"​ inexistant.+Soit le dossier "​Mon-dossier"​ non-vide; le dossier "​mon-dossier"​ vide; et le dossier "​mondossier"​ inexistant.
  
 <code bash> <code bash>
Ligne 66: Ligne 72:
  ( [ $reponse == oui ] && echo " le dossier va être créé"​ ) #; && mkdir ~/​mondossier ​  ( [ $reponse == oui ] && echo " le dossier va être créé"​ ) #; && mkdir ~/​mondossier ​
 </​code>​ </​code>​
-(Les antislash ne sont pas obligatoires,​ ils servent à rendre plus lisible les longues commandes qui se suivent sur une ligne.\\ +>Les antislash ne sont pas obligatoires,​ ils servent à rendre plus lisible les longues commandes qui se suivent sur une ligne. 
-On inhibe là le <​retour-chariot>​ !)+>On inhibe là le ''​<​retour-chariot>​'' ​! 
 <​note>​ <​note>​
-Les opérateurs && et || s'​utilisent comme les opérateurs binaires.\\ +Les opérateurs ​''​&&'' ​et ''​||'' ​s'​utilisent comme les opérateurs binaires.\\ 
-Avec eux eux, c'est soit 0 soit autre chose que 0.\\+Avec eux eux, c'est soit ''​0'' ​soit autre chose que ''​0'',​ c'​est-à-dire ''​1'',​ ou encore soit vrai, soit faux.\\
 Voir la liste des [[atelier:​chantier:​page-man-bash-iv-symboles-dans-les-calculs-mathematiques#​operateurs-binaires|opérateurs binaires]] Voir la liste des [[atelier:​chantier:​page-man-bash-iv-symboles-dans-les-calculs-mathematiques#​operateurs-binaires|opérateurs binaires]]
 </​note>​ </​note>​
  
-====3) Inverser le code de retour de la sortie d'une commande====+====Inverser le code de retour de la sortie d'une commande====
 <​code>​ <​code>​
 ! commande ! commande
 </​code>​ </​code>​
  
-Exemple.+  * Exemple ​:
 <code user> <code user>
 whoami whoami
 </​code>​ </​code>​
-puis +
 <code user> <code user>
 echo $?  ​ echo $?  ​
 </​code>​ </​code>​
-retour : 0+<​code>​ 
 +0 
 +</​code>​
  
 <code user> <code user>
 ! whoami ! whoami
 </​code>​ </​code>​
-puis +
 <code user> <code user>
 echo $?  ​ echo $?  ​
 </​code>​ </​code>​
-retour : 1+<​code>​ 
 +1 
 +</​code>​
  
 ==== Utiliser la commande exit ==== ==== Utiliser la commande exit ====
Ligne 103: Ligne 114:
   exit + nombre (nombre de 1 à 3 chiffre(s).)   exit + nombre (nombre de 1 à 3 chiffre(s).)
   ​   ​
-==="​exit"​ permet de remplacer le code de retour de la dernière commande d'un script.=== +===La commande ​"​exit" ​=== 
- +''​exit'' ​permet de remplacer le code de retour de la dernière commande d'un script. 
-**exemples**+  Exemples :
 Dans ce script, puisque la correspondance est juste, la commande "exit 1" est exécutée, et on sort du programme. Dans ce script, puisque la correspondance est juste, la commande "exit 1" est exécutée, et on sort du programme.
 <code bash> <code bash>
Ligne 116: Ligne 127:
 </​code>​ </​code>​
  
-retour 
 <​code>​ <​code>​
 bonjour est correspond à bonjour bonjour est correspond à bonjour
Ligne 125: Ligne 135:
 echo $? echo $?
 </​code>​ </​code>​
-retour : 1+<​code>​ 
 +1 
 +</​code>​
  
 ==="​exit"​ force à sortir du programme=== ==="​exit"​ force à sortir du programme===
Ligne 143: Ligne 155:
 echo "​$var"​ echo "​$var"​
 </​code>​ </​code>​
-retour :+
 <​code>​ <​code>​
 bonjour ne correspond pas à coucou bonjour ne correspond pas à coucou
Ligne 160: Ligne 172:
 exit 0 exit 0
 </​code>​ </​code>​
-retour : 
  
 <​code>​ <​code>​
Ligne 167: Ligne 178:
  
 ===Convention et sortie de programme par défaut=== ===Convention et sortie de programme par défaut===
-**Par convention on finit un script par exit 0**\\+>Par convention on finit un script par exit ''​0''​ 
 +>Si on ne finit pas par exit ''​0'',​ il s'​exécute un exit ''​$?'',​ ce qui est équivalent à un exit (tout court). ​
  
-**Si on ne finit pas par exit 0, il s'​exécute un exit $?, ce qui est équivalent à un exit (tout court)** 
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
Ligne 178: Ligne 189:
 exit 13 exit 13
 </​code>​ </​code>​
- 
-retour : 
  
 <​code>​ <​code>​
Ligne 185: Ligne 194:
 127 127
 </​code>​ </​code>​
 +  * Ou encore :
 <code user> <code user>
 echo $? echo $?
 </​code>​ </​code>​
-retour : 13+<​code>​ 
 +13 
 +</​code>​
 ===== État de sortie et les tests===== ===== État de sortie et les tests=====
 ===À savoir :===  ===À savoir :=== 
Ligne 247: Ligne 258:
 ===Alternatives : case et paramètres passés aux scripts=== ===Alternatives : case et paramètres passés aux scripts===
 <note tip> <note tip>
-Attention case n'​utilise pas d'​expression régulière,​ il s'agit plutôt de "​pattern matching"​+Attention case n'​utilise pas d'​expression régulière,​ il s'agit plutôt de "​pattern matching"​.\\ 
 +Voir : [[http://​bash.leyan.org/​Cours+5+-+bash+II#​Structure_conditionnelle_i_case_i_| les symboles reconnus par cases sont ceux servant à la manipulation des fichiers]].
 </​note>​ </​note>​
   * syntaxe de case :   * syntaxe de case :
Ligne 260: Ligne 272:
   * explications :   * explications :
   - case "​teste"​ la valeur du paramètre passé au script avec chaque "​expression"​ ;   - case "​teste"​ la valeur du paramètre passé au script avec chaque "​expression"​ ;
-  - et en fonction du test il y a exécution ou pas des commandes placées au niveau de "​instructions"​ ;+  - et en fonction ​de la réussite ou de l'​échec ​du testil y a exécution ou non des commandes placées au niveau de "​instructions"​ ;
   - Case sert à conditionner l'​exécution des commandes en fonction d'​argument choisi ;   - Case sert à conditionner l'​exécution des commandes en fonction d'​argument choisi ;
   - On se sert de "​l'​étoile"​ pour permettre que soit exécuter quelque chose quand n'​importe quel autre paramètre que ceux des expressions,​ est passé au script;   - On se sert de "​l'​étoile"​ pour permettre que soit exécuter quelque chose quand n'​importe quel autre paramètre que ceux des expressions,​ est passé au script;
Ligne 314: Ligne 326:
 ====Tests sur les valeurs déclarées dans le script==== ====Tests sur les valeurs déclarées dans le script====
 === Avec la structure conditionnelle if === === Avec la structure conditionnelle if ===
-Voir [[doc:​programmation:​shell:​avancee#​instruction-conditionnelle-if|structure conditionnelle if]] pour ce qui suit.\\ ​ +  
-Avec la structure conditionnelle if sur des valeurs affectés ​dans le script +Avec la structure conditionnelle if, on peut aussi faire des tests sur la (les) valeur(s) déclarée(s) ​dans le script.
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
Ligne 350: Ligne 361:
 </​note>​ </​note>​
  
 +=====La suite c'est ici=====
 +[[atelier:​chantier:​script-bash-les-tableaux|script-bash-les-tableaux]]
doc/programmation/shells/script-bash-etat-de-sorie-et-les-tests.txt · Dernière modification: 22/10/2015 18:39 par milou

Pied de page des forums

Propulsé par FluxBB