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
doc:programmation:shells:script-bash-detail-sur-les-parametres-et-les-boucles [07/07/2014 19:52]
Hypathie [script bash : modification de variable et de paramètre]
doc:programmation:shells:script-bash-detail-sur-les-parametres-et-les-boucles [21/10/2015 19:46] (Version actuelle)
paskal
Ligne 1: Ligne 1:
-====== ​script ​bash : modification de variable et de paramètre ======+======Script ​bash : modification de variable et de paramètre ======
  
-  * Niveau requis : {{tag>​débutant}}+  ​* Objet : Script bash : modification de variable et de paramètre 
 +  ​* Niveau requis : {{tag>​débutant ​avisé}} 
 +  * Commentaires : 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>​à-placer}} +  * Suivi :  
-    * Création par [[user>​Hypathie]] 18/​03/​2014 +    * Création par [[user>​Hypathie]] ​le 18/​03/​2014 
-    * Testé par <​Hypathiele <Juin 2014> +    * Testé par [[user>Hypathie]] ​Juin 2014 
-  * 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 !)) +  * Commentaires sur le forum : [[https://​debian-facile.org/​viewtopic.php?​pid=142173#p142173| Lien vers le forum concernant ce tuto]] ((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
- +
-  * [[atelier:​chantier:​debuter-avec-les-scripts-shell-bash]] +
-    +
-  * [[atelier:​chantier:​script-bash-enchainement-de-commandes-et-etat-de-sortie|script-bash-enchainement-de-commandes-et-etat-de-sortie]] +
-  * [[atelier:​chantier:​script-bash-etat-de-sorie-et-les-tests|script-bash-etat-de-sorie-et-les-tests]] +
-  * [[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 !
 +
 +
 +**Nota : Les autres wiki :**
 +  * [[doc:​programmation:​shells:​debuter-avec-les-scripts-shell-bash]]
 +  * [[doc:​programmation:​shells:​script-bash-variables-arguments-parametres|script-bash-variables-arguments-parametres]]
 +  * ;-)
 +  * [[doc:​programmation:​shells:​script-bash-enchainement-de-commandes-et-etat-de-sortie|script-bash-enchainement-de-commandes-et-etat-de-sortie]]
 +  * [[doc:​programmation:​shells:​script-bash-etat-de-sorie-et-les-tests|script-bash-etat-de-sortie-et-les-tests]]
 +  * [[doc:​programmation:​shells:​tableaux|script-bash-les-tableaux]]
 +  * [[doc:​programmation:​shells:​fonction|script-bash-les-fonctions]]
 +
 +
  
 ===== Modifications de variables===== ===== Modifications de variables=====
Ligne 24: Ligne 31:
     ​     ​
 ====Modifier la variable d'une structure de contrôle par les paramètres de position==== ====Modifier la variable d'une structure de contrôle par les paramètres de position====
-<code bash>+<code bash script>
 #!/bin/bash #!/bin/bash
 for i in "​$@"​ for i in "​$@"​
Ligne 52: Ligne 59:
 ====Modifier une variable par les paramètres de position déclarés dans le script==== ====Modifier une variable par les paramètres de position déclarés dans le script====
  
-<code bash>+<code bash script>
 #!/bin/bash #!/bin/bash
 set a b c set a b c
Ligne 73: Ligne 80:
 <note tip> <note tip>
 Contrairement aux boucles while et for, la variable du sélecteur case n'est pas modifiée par les paramètres,​\\ mais permet de tester chacune des valeurs déclarées dans ses cases, soit avec un paramètre de position, soit avec une variable du script.\\ Contrairement aux boucles while et for, la variable du sélecteur case n'est pas modifiée par les paramètres,​\\ mais permet de tester chacune des valeurs déclarées dans ses cases, soit avec un paramètre de position, soit avec une variable du script.\\
-Voir : [[atelier:chantier:​script-bash-etat-de-sorie-et-les-tests#​tests-sur-parametres-passes-au-scripts|Tests sur paramètres passés au scripts]] ​+Voir : [[doc:programmation:​shells:​script-bash-etat-de-sorie-et-les-tests#​tests-sur-parametres-passes-au-scripts|Tests sur paramètres passés au scripts]] ​
 </​note>​ </​note>​
 ===== Manipuler la valeur des paramètres de position : set===== ===== Manipuler la valeur des paramètres de position : set=====
Ligne 81: Ligne 88:
 </​code>​ </​code>​
 À savoir :  À savoir : 
-  - variables de substitution prédéfinies [[atelier:chantier:​bash-les-differents-caracteres-speciaux?&#​variables-de-substitution-predefinies-principalement-dans-les-scripts]] +  - variables de substitution prédéfinies [[doc:programmation:​shells:​bash-les-differents-caracteres-speciaux?&#​variables-de-substitution-predefinies-principalement-dans-les-scripts]] 
-  - [[atelier:chantier:​script-bash-variables-arguments-parametres?&#​quand-les-valeurs-sont-des-parametres|quand les valeurs sont des paramètres]]+  - [[doc:​programmation:shells:​script-bash-variables-arguments-parametres?&#​quand-les-valeurs-sont-des-parametres|quand les valeurs sont des paramètres]]
  
 La //commande set// permet d'​affecter une valeur provisoire à un ou plusieurs paramètres de position.\\ La //commande set// permet d'​affecter une valeur provisoire à un ou plusieurs paramètres de position.\\
Ligne 89: Ligne 96:
 ===Exemple=== ===Exemple===
 Soit le script "​mon-script"​ Soit le script "​mon-script"​
-<code bash>+<code bash mon-script>
 #!/bin/bash #!/bin/bash
 set un deux trois set un deux trois
Ligne 100: Ligne 107:
 ./​mon-script ./​mon-script
 </​code>​ </​code>​
-<code>+<file config retour de la commande>
 un deux trois un deux trois
 3 3
 il y a deux paramètres de position : un ; deux. il y a deux paramètres de position : un ; deux.
  et les enregistre dans une variable prédéfinie pour le shell courant.  et les enregistre dans une variable prédéfinie pour le shell courant.
-</code>+</file>
 ====Suppression des paramètres de position ==== ====Suppression des paramètres de position ====
 Soit le script "​mon-script"​ Soit le script "​mon-script"​
-<code bash>+<code bash mon-script>
 #!/bin/bash #!/bin/bash
 set a b c set a b c
Ligne 119: Ligne 126:
 </​code>​ </​code>​
  
-<code>+<file config retour de la commande>
 a b c a b c
 Plus de paramètre ​ ! Plus de paramètre ​ !
-</code>+</file>
  
 ====Attention à la commande set !==== ====Attention à la commande set !====
Ligne 128: Ligne 135:
 ===Exemple 1=== ===Exemple 1===
 Soit le script "​mon-script1"​. Soit le script "​mon-script1"​.
-<code bash>+<code bash mon-script1>
 #!/bin/bash #!/bin/bash
 var=lettres var=lettres
Ligne 142: Ligne 149:
 ./​mon-script1 ./​mon-script1
 </​code>​ </​code>​
-<code>+<file config retour de la commande>
 lettres a b c lettres a b c
 3 3
 il y a trois paramètres,​ leurs valeurs sont : a, b, c  il y a trois paramètres,​ leurs valeurs sont : a, b, c 
  et une variable nommée var de valeur "​lettres"​.  et une variable nommée var de valeur "​lettres"​.
-</code>+</file>
  
 ===Exemple 2 === ===Exemple 2 ===
 Soit le script "​mon-script2"​ à comparer avec "​mon-script1"​ de l'​exemple 1. Soit le script "​mon-script2"​ à comparer avec "​mon-script1"​ de l'​exemple 1.
-<code bash>+<code bash mon-script2>
 #!/bin/bash #!/bin/bash
 var=lettres var=lettres
Ligne 162: Ligne 169:
 </​code>​ </​code>​
  
-<​code ​bash>+<​code ​user>
 ./​mon-script2 a b c ./​mon-script2 a b c
 </​code>​ </​code>​
  
-<code>+<file config retour de la commande>
 lettres a b c lettres a b c
 3 3
 il y a trois paramètres,​ leurs valeurs sont : a, b, c  il y a trois paramètres,​ leurs valeurs sont : a, b, c 
  et une variable nommée var de valeur "​lettres"​.  et une variable nommée var de valeur "​lettres"​.
-</code>+</file>
 === Exemple 3=== === Exemple 3===
 Soit le script "​mon-script3"​ à comparer avec "​mon-script2"​ et "​mon-script3"​. Soit le script "​mon-script3"​ à comparer avec "​mon-script2"​ et "​mon-script3"​.
-<code bash>+<code bash mon-script3>
 #!/bin/bash #!/bin/bash
 var=lettres var=lettres
Ligne 186: Ligne 193:
 </​code>​ </​code>​
  
-<​code ​bash+<​code ​user
-./mon-script2 ​a b c d+./mon-script3 ​a b c d
 </​code>​ </​code>​
  
-<code>+<file config retour de la commande>
 lettres 1 2  lettres 1 2 
 2 2
Ligne 196: Ligne 203:
  et une variable nommée var de valeur "​lettres"​.  et une variable nommée var de valeur "​lettres"​.
  
-</code+</file
->La commande set supprime toute possibilité de se référer à des paramètres passés au+>La commande ​''​set'' ​supprime toute possibilité de se référer à des paramètres passés au
 >script (depuis le terminal), et ceci y compris si on supprime ​ >script (depuis le terminal), et ceci y compris si on supprime ​
->avec <nocode>set - -<nocode> les paramètres de position déclarés avec set.+>​avec ​''​<nowiki>set - -</nowiki>'' ​les paramètres de position déclarés avec ''​set''​.
  
 <​note>​ <​note>​
   * Sans argument la commande set affiche tous les noms et toutes les valeurs des variables pré-définies. Mais elle n'​enregistre pas une valeur d'une variable non-déclarée. ​   * Sans argument la commande set affiche tous les noms et toutes les valeurs des variables pré-définies. Mais elle n'​enregistre pas une valeur d'une variable non-déclarée. ​
   * Soit "​mon-script"​ :   * Soit "​mon-script"​ :
-<code bash>+<code bash mon-script>
 #!/bin/bash #!/bin/bash
 var=lettres var=lettres
Ligne 214: Ligne 221:
 ./​mon-script | grep var ./​mon-script | grep var
 </​code>​ </​code>​
- +<file config retour de la commande>
-<code>+
 BASHOPTS=cmdhist:​extquote:​force_fignore:​hostcomplete:​interactive_comments:​progcomp:​promptvars:​sourcepath BASHOPTS=cmdhist:​extquote:​force_fignore:​hostcomplete:​interactive_comments:​progcomp:​promptvars:​sourcepath
 XAUTHORITY=/​var/​run/​gdm3/​auth-for-hypathie-HhozZG/​database XAUTHORITY=/​var/​run/​gdm3/​auth-for-hypathie-HhozZG/​database
 var=lettres var=lettres
-</code>+</file>
 >Nous retrouvons la variable var de notre script avec sa valeur "​lettres"​. >Nous retrouvons la variable var de notre script avec sa valeur "​lettres"​.
 <code user> <code user>
 ./​mon-script | grep coucou ./​mon-script | grep coucou
 </​code>​ </​code>​
-<code>+<file config retour de la commande>
 _=coucou _=coucou
-</code>+</file>
 >On retrouve un argument unique >On retrouve un argument unique
 <code user> <code user>
 ./​mon-script | grep a b c ./​mon-script | grep a b c
 </​code>​ </​code>​
-<code>+<file config retour de la commande>
 grep: b: Aucun fichier ou dossier de ce type grep: b: Aucun fichier ou dossier de ce type
 grep: c: Aucun fichier ou dossier de ce type grep: c: Aucun fichier ou dossier de ce type
-</code>+</file>
 >Mais on ne retrouve pas les paramètres a b c. >Mais on ne retrouve pas les paramètres a b c.
  
Ligne 251: Ligne 257:
 ===Exemple=== ===Exemple===
 Il peut être utile de vérifier grâce à un message d'​erreur,​ si on appelle la valeur d'un paramètre qui n'a pas été défini. Il peut être utile de vérifier grâce à un message d'​erreur,​ si on appelle la valeur d'un paramètre qui n'a pas été défini.
-<code bash>+<code bash script>
 #!/bin/bash #!/bin/bash
 set -o nounset set -o nounset
Ligne 272: Ligne 278:
 Par exemple : soit le script ci-dessous boucle-set\\ ​ Par exemple : soit le script ci-dessous boucle-set\\ ​
  
-<code bash>+<code bash script boucle-set.sh>
 #!/bin/bash #!/bin/bash
 var=$1 var=$1
Ligne 293: Ligne 299:
 </​code>​ </​code>​
  
-<code>+<file config retour de la commande>
 a b c a b c
 les paramètres sont : a :b :c . les paramètres sont : a :b :c .
Ligne 302: Ligne 308:
  
 ~$ ~$
-</code>+</file>
  
 <code user> <code user>
Ligne 308: Ligne 314:
 </​code>​ </​code>​
  
-<code>+<file config retour de la commande>
 argument1 argument1
 a b c a b c
Ligne 317: Ligne 323:
 les paramètres sont : c : : . les paramètres sont : c : : .
 argument1 argument1
-</code>+</file>
  
 =====La suite c'est ici ===== =====La suite c'est ici =====
-[[atelier:chantier:​script-bash-enchainement-de-commandes-et-etat-de-sortie|script-bash-enchainement-de-commandes-et-etat-de-sortie]]+[[doc:programmation:​shells:​script-bash-enchainement-de-commandes-et-etat-de-sortie|script-bash-enchainement-de-commandes-et-etat-de-sortie]]
doc/programmation/shells/script-bash-detail-sur-les-parametres-et-les-boucles.1404755577.txt.gz · Dernière modification: 07/07/2014 19:52 par Hypathie

Pied de page des forums

Propulsé par FluxBB