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:debuter-avec-les-scripts-shell-bash [30/05/2014 09:22]
Hypathie [Valeurs d'une variable internes ou externes à un script]
doc:programmation:shells:debuter-avec-les-scripts-shell-bash [30/05/2014 10:50]
Hypathie [Introduction : éviter les bashismes]
Ligne 20: Ligne 20:
   * [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)   * [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
   * [[doc:​programmation:​shell:​shell|Le shell pour tous]]   * [[doc:​programmation:​shell:​shell|Le shell pour tous]]
-  * [[chantier:​bash-les-differents-caracteres-speciaux|Bash : Introduction]]+  * [[atelier:chantier:​bash-les-differents-caracteres-speciaux|Bash : Introduction]]
  
   * pour s'​exercer sur la question de chemin relatif et absolu : [[doc:​programmation:​shell:​illustration-navigation-shell]]   * pour s'​exercer sur la question de chemin relatif et absolu : [[doc:​programmation:​shell:​illustration-navigation-shell]]
Ligne 429: Ligne 429:
  
 =====Valeurs d'une variable internes ou externes à un script===== =====Valeurs d'une variable internes ou externes à un script=====
-====Utilisation de la structure conditionnelle if==== +====récupération et modification d'une valeur par le script==== 
-===Prérequis===+===Pré-requis:​ utiliser la structure conditionnelle if===
 À savoir : À savoir :
   * [[atelier:​chantier:​la-page-man-bash-ii-les-operateurs-lexicographiques|Opérateurs lexicographiques]]   * [[atelier:​chantier:​la-page-man-bash-ii-les-operateurs-lexicographiques|Opérateurs lexicographiques]]
Ligne 453: Ligne 453:
 </​code>​ </​code>​
  
-**Les chaînes testées par un script peuvent être aussi dans un fichier.**\\ ​+**Les chaînes testées par un script peuvent être aussi le contenu d'un fichier.**\\ ​
  
   * Voir ce script : [[http://​www.quennec.fr/​linux/​programmation-shell-sous-linux/​les-bases-de-la-programmation-shell/​ex%C3%A9cution-de-tests/​la-5]]   * Voir ce script : [[http://​www.quennec.fr/​linux/​programmation-shell-sous-linux/​les-bases-de-la-programmation-shell/​ex%C3%A9cution-de-tests/​la-5]]
Ligne 461: Ligne 461:
 **Mais pour modifier la valeur d'une variable par un script (que le script appelle une valeur extérieure**;​ chaîne de caractère donnée par le terminale, récupération du résultat d'une commande, contenu d'un fichier, etc. **ou que cette variable soit affectée dans le script lui-même) on utilise les boucles.** **Mais pour modifier la valeur d'une variable par un script (que le script appelle une valeur extérieure**;​ chaîne de caractère donnée par le terminale, récupération du résultat d'une commande, contenu d'un fichier, etc. **ou que cette variable soit affectée dans le script lui-même) on utilise les boucles.**
  
-====Utilisation des boucles====+====Déclaration nulle et modification par le script d'une valeur interne ou externe==== 
 +===Pré-requis : utiliser les structures de contrôle=== 
 +Voir :  
 +  * **[[doc:​programmation:​shell:​avancee#​boucle-tant-que-while|boucle while]]** 
 +  * **[[doc:​programmation:​shell:​avancee#​boucle-pour-tout-for|boucle for]]** 
 +  * **[[doc:​programmation:​shell:​avancee#​selecteur-case|boucle case]]** 
 + 
 +===Modifier la variable d'une structure de contrôle par une valeur appelée dans le script===
 <​code>​ <​code>​
 #!/bin/bash #!/bin/bash
Ligne 486: Ligne 493:
 Ci-dessus, la variable i de la boucle prend tour à tour la valeur des paramètres passé au script depuis le terminal et la structure if teste si la chaîne du paramètre passé au script (valeur de la variable) correspond au motif voulu.\\ Ci-dessus, la variable i de la boucle prend tour à tour la valeur des paramètres passé au script depuis le terminal et la structure if teste si la chaîne du paramètre passé au script (valeur de la variable) correspond au motif voulu.\\
  
 +===Modifier une variable déclarée dans le script par une structure de contrôle===
  
 +<code bash>
 +#!/bin/bash
 +set a b c
 +     echo "Avec '​shift',​ on se décale d'un paramètre à chaque boucle." ​
 +          ​
 +for i in "​$@"​
 +do
 +i=$1
 +shift 1
 +echo "les paramètres sont : $1 :$2 :$3 ."
 +done
 +</​code>​
 +Retour:
 +
 +<code bash>
 +Avec '​shift',​ on se décale d'un paramètre à chaque boucle.
 +les paramètres sont : b :c : .
 +les paramètres sont : c : : .
 +les paramètres sont :  : : .
 +</​code>​
 +** Attention à la commande set: avec set - - le script est en quelque sorte, fermé sur lui-même et après l'​avoir utiliser, on ne peut plus récupérer une valeur extérieur au script pour modifier une variable du script.**
 +Par exemple : soit le script ci-dessous boucle-set.sh
 +(passer un argument à ce script depuis le terminal)
 +<code bash>
 +#!/bin/bash
 +var=$1
 +echo $1
 +set a b c
 +#set --
 +echo $@
 +          ​
 +for i in "​$@"​
 +do
 +i=$1
 +shift 1
 +echo "les paramètres sont : $1 :$2 :$3 ."
 +echo $var
 +done
 +</​code>​
 +<code user>
 +./​boucle-set.sh argument1
 +</​code>​
 +Retour :
 +<code user>
 +argument1
 +a b c
 +les paramètres sont : b :c : .
 +argument1
 +les paramètres sont : c : : .
 +argument1
 +les paramètres sont :  : : .
 +argument1
 +</​code>​
 +**MAIS :**
 +<code bash>
 +#!/bin/bash
 +var=$1
 +echo $1
 +set a b c
 +set --
 +echo $@
 +          ​
 +for i in "​$@"​
 +do
 +i=$1
 +shift 1
 +echo "les paramètres sont : $1 :$2 :$3 ."
 +echo $var
 +done
 +</​code>​
 +Retour :
 +<code user>
 +argument1
 +
 +
 +</​code>​
 =====Créer des variables : les tableaux===== =====Créer des variables : les tableaux=====
 Les variables de chaque case d'un tableau, ont elles aussi une position définie par l'​utilisateur,​ ou automatiquement lors de la création du tableau.\\ ​ Les variables de chaque case d'un tableau, ont elles aussi une position définie par l'​utilisateur,​ ou automatiquement lors de la création du tableau.\\ ​
doc/programmation/shells/debuter-avec-les-scripts-shell-bash.txt · Dernière modification: 20/08/2022 08:35 par paskal

Pied de page des forums

Propulsé par FluxBB