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-enchainement-de-commandes-et-etat-de-sortie [07/06/2014 07:45]
Hypathie [Redirections et le pipe dans les scripts]
doc:programmation:shells:script-bash-enchainement-de-commandes-et-etat-de-sortie [20/06/2014 08:06]
Hypathie [Enchaînements de commandes dans les scripts]
Ligne 12: Ligne 12:
   * wiki n°1 : [[atelier:​chantier:​debuter-avec-les-scripts-shell-bash]]   * wiki n°1 : [[atelier:​chantier:​debuter-avec-les-scripts-shell-bash]]
   * wiki n°2 : [[atelier:​chantier:​script-bash-variables-arguments-parametres|script-bash-variables-arguments-parametres]]   * wiki n°2 : [[atelier:​chantier:​script-bash-variables-arguments-parametres|script-bash-variables-arguments-parametres]]
-  * wiki n°3 : [[atelier:​chantier:​script-bash-detail-sur-les-parametres-et-les-boucles|script-bash-detail-sur-les-parametres]] +  * wiki n°3 : [[atelier:​chantier:​script-bash-detail-sur-les-parametres-et-les-boucles|modification de variable et de paramètre]] 
   ​   ​
   * wiki n°5 : [[atelier:​chantier:​script-bash-etat-de-sorie-et-les-tests|script-bash-etat-de-sorie-et-les-tests]]   * wiki n°5 : [[atelier:​chantier:​script-bash-etat-de-sorie-et-les-tests|script-bash-etat-de-sorie-et-les-tests]]
Ligne 22: Ligne 22:
 =====Enchaînements de commandes dans les scripts===== =====Enchaînements de commandes dans les scripts=====
 Parmi les opérateurs d'​enchaînement de commandes (voir [[atelier:​chantier:​bash-les-differents-caracteres-speciaux#​les-operateurs-de-controle|les opérateurs de contrôle]])\\ Parmi les opérateurs d'​enchaînement de commandes (voir [[atelier:​chantier:​bash-les-differents-caracteres-speciaux#​les-operateurs-de-controle|les opérateurs de contrôle]])\\
-  * considérons :   +  * considérons ​maintenant ​:   
 <​code>​ <​code>​
   &    && ​ ;  ( )    { }  ​   &    && ​ ;  ( )    { }  ​
 </​code>​ </​code>​
  
-Pour les opérateurs de contrôle du point de vue de **l'​enchaînement conditionné** (avec && ; || ) voir : [[atelier:​chantier:​script-bash-etat-de-sorie-et-les-tests?&#​etat-de-sortie-et-code-de-retour|état de sortie et code de retour]].+//(Pour ce qui concerne ​les opérateurs de contrôle du point de vue de **l'​enchaînement conditionné** (avec && ; || ) voir : [[atelier:​chantier:​script-bash-etat-de-sorie-et-les-tests?&#​etat-de-sortie-et-code-de-retour|état de sortie et code de retour]]).//
  
 ====parallélisme et succession==== ====parallélisme et succession====
Ligne 158: Ligne 158:
   nenette   nenette
   ​   ​
-Créer un sous-shell permet ainsi de protéger de ce qui se passe dans le processus fils.\+Créer un sous-shell permet ainsi de protéger de ce qui se passe dans le processus fils.\\
 Créer un processus fil permet aussi au processus père de continuer son programme "​pendant"​ l'​exécution du processus fils : ça évite de ralentir l'​ensemble du programme. Créer un processus fil permet aussi au processus père de continuer son programme "​pendant"​ l'​exécution du processus fils : ça évite de ralentir l'​ensemble du programme.
 +
 +<note tip>
 +En graphique, un sous-shell pour récupérer la main sur le terminal, c'est bien pratique 8-)\\
 +Comparez :
 +<code bash>
 +virtualbox
 +</​code>​
 +avec :
 +<code bash>
 +virtualbox &
 +[1] 4245
 +</​code>​
 +//Ici "​[1]"​ est le jobID et "​4245"​ est PID, l'​identifiant du processus.//​\\
 +//(Pour aller plus loin voir la notion de processus et les commandes : ps ; top ; nice et renice.)//
 +
 +Dans les deux cas, si l'on ferme le terminal, on ferme aussi "​virtualbox",​ processus fils du shell ; mais avec & le processus fils est en arrière plan et l'on peut donc utiliser le shell.
 +</​note>​
 ===Lancer deux sous-shell en parallèle === ===Lancer deux sous-shell en parallèle ===
 Il est possible de lancer deux processus en parallèle. Il est possible de lancer deux processus en parallèle.
Ligne 194: Ligne 211:
     * $SHELLOPTS : où on peut changer les options d'​environnement du shell     * $SHELLOPTS : où on peut changer les options d'​environnement du shell
   * et les droits sont limités.   * et les droits sont limités.
-=====Redirections et le pipe dans les scripts===== +=====Redirections et le pipe ===== 
-  * À voir  +  * Liste des opératieurs ​: [[atelier:​chantier:​bash-les-differents-caracteres-speciaux#​les-operateurs-de-redirection|un tableau des opérateurs de redirection]] 
-    * [[atelier:​chantier:​bash-les-differents-caracteres-speciaux#​les-operateurs-de-redirection|un tableau des opérateurs de redirection]] +  * Exercices dans le terminal, tout est là : [[doc:​programmation:​shell:​chevrons| les chevrons]]
-===Rappels ===+
  
 +==== Redirections : quelques points importants pour les scripts====
 +===Rappels sur les flux ===
 Les redirections permettent de travailler non pas en se servant du code de retour (qui indique la réussite ou l'​échec de l'​exécution d'une commande) mais sur les flux.\\ ​ Les redirections permettent de travailler non pas en se servant du code de retour (qui indique la réussite ou l'​échec de l'​exécution d'une commande) mais sur les flux.\\ ​
 Un processus unix possède (par défaut) trois voies d'​interaction entre le système et l'​utilisateur. Une entrée et deux sorties. Chacun de ces "​lieux"​ sont identifiés par un descripteur de fichier. Un processus unix possède (par défaut) trois voies d'​interaction entre le système et l'​utilisateur. Une entrée et deux sorties. Chacun de ces "​lieux"​ sont identifiés par un descripteur de fichier.
Ligne 213: Ligne 231:
              le fichier quand il existe et que l'​option noclobber (-c) est activée.              le fichier quand il existe et que l'​option noclobber (-c) est activée.
 </​code>​ </​code>​
-====Opérateurs opérateurs d'​entrée et de sortie dans les scripts==== 
-**Exercices dans le terminal, tout est là : [[doc:​programmation:​shell:​chevrons| les chevrons]]** 
  
-===Usages ​de la sortie d'​erreur dans les scripts===+===Utilisation ​de la sortie d'​erreur dans les scripts===
  
   * La sortie standard d'​erreur peut être dirigée vers un fichier en le créant ou en l'​écrasant :   * La sortie standard d'​erreur peut être dirigée vers un fichier en le créant ou en l'​écrasant :
Ligne 273: Ligne 289:
 </​code>​ </​code>​
  
 +===Utilisation du "text processing"​ ===
 +  * Tout est là : [[http://​wiki.debian-facile.org/​atelier:​chantier:​les-commandes-join-paste-split-et-nl|http://​wiki.debian-facile.org/​atelier:​chantier:​les-commandes-join-paste-split-et-nl]]
  
 ====Un petit exercice sur opérateurs d'​enchaînement et de redirection==== ====Un petit exercice sur opérateurs d'​enchaînement et de redirection====
 +===énoncé===
 Écrire un script qui crée le dossier "​ABCD"​ et 4 fichiers vides (nommés a b c d) ; Écrire un script qui crée le dossier "​ABCD"​ et 4 fichiers vides (nommés a b c d) ;
 qui liste le contenu de "​ABCD"​ et qui inscrit le résultat dans un fichier nommé "​ls1"​ qui sera placé dans "​ABCD"​ ; qui liste le contenu de "​ABCD"​ et qui inscrit le résultat dans un fichier nommé "​ls1"​ qui sera placé dans "​ABCD"​ ;
Ligne 287: Ligne 306:
 </​note>​ </​note>​
  
 +===une solution===
 Bonne lecture ;-) Bonne lecture ;-)
 <code bash> <code bash>
Ligne 312: Ligne 332:
 echo $? ;} echo $? ;}
 </​code>​ </​code>​
-Retour : +
-<​code>​ +
-+
-+
-+
-/​home/​hypathie +
-+
-/​home/​hypathie +
-+
-J'​écris un script, +
-+
-avec les opérateurs de redirection. +
-+
-      2       ​8 ​     57 +
-+
-</​code>​+
  
   * **2>>/​dev/​null** : permet ici de relancer le script autant de fois qu'on veut, sans voir apparaître de message d'​erreur : mkdir fichier-existant ne réinitialise pas un fichier de type dossier en le vidant. ​   * **2>>/​dev/​null** : permet ici de relancer le script autant de fois qu'on veut, sans voir apparaître de message d'​erreur : mkdir fichier-existant ne réinitialise pas un fichier de type dossier en le vidant. ​
doc/programmation/shells/script-bash-enchainement-de-commandes-et-etat-de-sortie.txt · Dernière modification: 21/10/2015 19:19 par milou

Pied de page des forums

Propulsé par FluxBB