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 →
Ci-dessous, les différences entre deux révisions de la page.
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:43] 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 495: | Ligne 495: | ||
===Modifier une variable déclarée dans le script par une structure de contrôle=== | ===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.\\ |