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 06:52]
Hypathie [script bash : enchaînement de commandes et redirection]
doc:programmation:shells:script-bash-enchainement-de-commandes-et-etat-de-sortie [07/06/2014 08:32]
Hypathie [Redirections et le pipe dans les scripts]
Ligne 121: Ligne 121:
 <​code>​ <​code>​
 yep yep
-essai.sh: ​ligne6: yep : commande introuvable+essai.sh: ​ligne5: yep : commande introuvable
 coucou coucou
 </​code>​ </​code>​
Ligne 162: Ligne 162:
 ===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.
 +Comparez le retour des lignes n°2 et n°3 avec celles des lignes n°5 et n°6 du code ci-dessous.
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
Ligne 171: Ligne 171:
 cd /​etc/​calendar ; ls cd /​etc/​calendar ; ls
 </​code>​ </​code>​
-Comparez le retour.+
  
 ====Le shell restreint ==== ====Le shell restreint ====
Ligne 195: Ligne 195:
   * et les droits sont limités.   * et les droits sont limités.
 =====Redirections et le pipe dans les scripts===== =====Redirections et le pipe dans les scripts=====
-  * À 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]] +====Rappels ​sur les redirections====
-====Rappels ​:==== +
  
 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.\\ ​
Ligne 213: Ligne 212:
              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 ​de sortie et opérateurs ​d'​entrée ​==== +===Opérateurs d'​entrée ​et de sortie dans les scripts=== 
-  Tout est là : [[doc:​programmation:​shell:​chevrons| les chevrons]] ​\\+**Exercices dans le terminal, tout est là : [[doc:​programmation:​shell:​chevrons| les chevrons]]**
  
-===Opérateurs de sortie dans un script :=== +====Usages de la sortie d'​erreur dans les scripts====
- +
-<code bash> +
-#​!/​bin/​bash +
-# mise en place : +
-{ mkdir ~/ABCD ; cd ABCD ; touch a b c d ; cd ~ ; pwd ;} +
- +
-# création de fichier avec " > " : +
- cd ~/ABCD && > fichier1 && pwd ; cd ~ && pwd && > /​home/​hypathie/​ABCD/​fichier2 && pwd && cd ~ && pwd   +
-                                                # espace facultatif avant et après " > " +
- +
-# redirection de la sortie de commande vers un fichier : +
-ls>/​home/​hypathie/​ABCD/​recup-ls ​                # espace facultatif avant et après " > " +
-</​code>​ +
- +
-Retour : +
-<code bash> +
-/​home/​hypathie ​      # après cd ~ on est retourné dans le répertoire de l'​utilisateur +
-/​home/​hypathie/​ABCD ​ # après création du fichier1 on est encore dans "​ABCD"​ +
-/​home/​hypathie ​      # après cd ~ on est retourné dans le répertoire utilisateur +
-/​home/​hypathie ​      # on a créé fichier2 dans "​ABCD"​ depuis le répertoire utilisateur +
-/​home/​hypathie +
-</​code>​ +
-<note important>​ +
-Attention:​ +
-Créer un fichier avec > est un bashisme. La méthode universelle est d'​utiliser "​touch"​. +
-Amateurs de magie blanche et noire voir ce fil : [[http://​debian-facile.org/​viewtopic.php?​pid=86634#​p86634]] +
-</​note>​ +
- +
-===Opérateurs d'​entrée dans les scripts=== +
- +
-<code bash> +
-< Place, en entrée d'une commande, un contenu. +
-</​code>​  +
-<code bash> +
-cat < /​chemin/​du/​fichier.txt ​ # est un équivalent de cat /​chemin/​du/​fichier.txt +
-</​code>​ +
-<code bash> +
- <<​ Redirige en entrée une série de données. ​  +
-</​code>​ +
-On nomme cette redirection "​label"​.\\ Redirection utilisée dans un document en ligne dont on se sert que pour certaines commandes, comme ftp ou cat.\\ Voir : [[http://​abs.traduc.org/​abs-5.0-fr/​ch18.html#​heredocref]]\\  +
-Ne pas confondre avec la commande e2label, voir : [[doc:​systeme:​e2label]] +
- +
-===Usages 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 316: Ligne 272:
 </​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 ====+====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 324: Ligne 283:
 puis une deuxième ligne de texte dans "​fichier.txt",​ en affichant dans le terminal,\\ le nombre de lignes, de mots et d'​octets que possède le fichier "​fichier.txt"​ ;  puis une deuxième ligne de texte dans "​fichier.txt",​ en affichant dans le terminal,\\ le nombre de lignes, de mots et d'​octets que possède le fichier "​fichier.txt"​ ; 
 se servir de différentes méthodes tout au long du script pour vérifier\\ au niveau du terminal que chaque commande s'est bien déroulée. se servir de différentes méthodes tout au long du script pour vérifier\\ au niveau du terminal que chaque commande s'est bien déroulée.
 +<note important>​
 +Attention:
 +Créer un fichier avec > est un bashisme. La méthode universelle est d'​utiliser "​touch"​.
 +Amateurs de magie blanche et noire voir ce fil : [[http://​debian-facile.org/​viewtopic.php?​pid=86634#​p86634]]
 +</​note>​
  
 +===une solution===
 Bonne lecture ;-) Bonne lecture ;-)
 <code bash> <code bash>
Ligne 351: Ligne 315:
 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