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 [03/06/2014 09:24] Hypathie [D ) Les tests] |
doc:programmation:shells:debuter-avec-les-scripts-shell-bash [03/06/2014 10:27] Hypathie [D ) Code de retour et les tests] |
||
---|---|---|---|
Ligne 426: | Ligne 426: | ||
</note> | </note> | ||
- | ====3) Créer des variables avec 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.\\ | ||
- | Pour plus de précision sur la création et l'utilisation de tableau dans les scripts voir ici : [[atelier:chantier:page-man-bash-v-les-tableaux]] | ||
- | ====4) création de variables quelques commandes à connaître==== | ||
- | ===declare=== | ||
- | ===let=== | ||
=====D ) Code de retour et les tests===== | =====D ) Code de retour et les tests===== | ||
====1) le code de retour et la commande exit ==== | ====1) le code de retour et la commande exit ==== | ||
Ligne 440: | Ligne 434: | ||
====2 ) les tests ==== | ====2 ) les tests ==== | ||
===À savoir :=== | ===À savoir :=== | ||
- | * **[[doc:programmation:shell:avancee|Fonctionnalités avancées du Shell]] en particulier : [[doc:programmation:shell:avancee#instruction-conditionnelle-if|structure conditionnelle if]] pour ce qui suit** | + | |
* **[[atelier:chantier:la-page-man-bash-ii-les-operateurs-lexicographiques|les opérateurs lexicographiques]] et leur syntaxe** | * **[[atelier:chantier:la-page-man-bash-ii-les-operateurs-lexicographiques|les opérateurs lexicographiques]] et leur syntaxe** | ||
* **[[atelier:chantier:page-man-bash-iii-les-operateurs-de-comparaison-numerique|les opérateurs de comparaison numérique et leur syntaxe]]** | * **[[atelier:chantier:page-man-bash-iii-les-operateurs-de-comparaison-numerique|les opérateurs de comparaison numérique et leur syntaxe]]** | ||
Ligne 447: | Ligne 441: | ||
Ne pas confondre le signe = de l'affectation d'une variable par une valeur (voir ci-dessus [[atelier:chantier:debuter-avec-les-scripts-shell-bash#affectation-directe|affectation directe]]) et l'opérateur de correspondance = (ou == ) utilisé dans les tests.\\ | Ne pas confondre le signe = de l'affectation d'une variable par une valeur (voir ci-dessus [[atelier:chantier:debuter-avec-les-scripts-shell-bash#affectation-directe|affectation directe]]) et l'opérateur de correspondance = (ou == ) utilisé dans les tests.\\ | ||
Dans les tests sur les entiers l'égalité est représentée par l'option -eq ! | Dans les tests sur les entiers l'égalité est représentée par l'option -eq ! | ||
+ | |||
+ | ===Avec la structure conditionnelle if === | ||
+ | **Voir[[doc:programmation:shell:avancee|Fonctionnalités avancées du Shell]] en particulier : [[doc:programmation:shell:avancee#instruction-conditionnelle-if|structure conditionnelle if]] pour ce qui suit** | ||
+ | |||
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
Ligne 509: | Ligne 507: | ||
</code> | </code> | ||
+ | ===Alternatives : case=== | ||
+ | ** Attention case n'utilise pas d'expression régulière mais du "pattern matching"** | ||
+ | * syntaxe de case : | ||
+ | <code bash> | ||
+ | case $variable in | ||
+ | expression) | ||
+ | instructions | ||
+ | ;; | ||
+ | ... | ||
+ | esac | ||
+ | </code> | ||
+ | * explications : | ||
+ | - case "teste" la valeur du paramètre passé au script avec chaque "expression" ; | ||
+ | - et en fonction du test il y a exécution ou pas des commandes placées au niveau de "instructions" ; | ||
+ | - Case sert à conditionner l'exécution des commandes en fonction d'argument choisi ; | ||
+ | - On se sert de "l'étoile" pour permettre que soit exécuter quelque chose quand n'importe quel autre paramètre que ceux des expressions, est passé au script; | ||
+ | * Ne pas oublier : | ||
+ | - le double point virgule qui permet de clôturer chaque test ; | ||
+ | - esac pour finir. | ||
+ | * exemple : | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | # passer le paramètre 'coco' à ce script ; puis 'cucu' ; titi puis toto, puis celui que voulez. | ||
+ | case $1 in | ||
+ | coco) | ||
+ | echo "Vous avez passé le paramètre 'coco', ré-essayez avec 'cucu'" | ||
+ | ;; | ||
+ | cucu) | ||
+ | echo "Vous avez passé le paramètre 'cucu'" | ||
+ | echo "un peu d'humour !" | ||
+ | echo "Ré-essayé un paramètre de votre choix." | ||
+ | ;; | ||
+ | titi|toto) | ||
+ | echo "vous avez passé le paramètre $1" | ||
+ | ;; | ||
+ | *) | ||
+ | echo "Vous avez choisi $1" | ||
+ | esac | ||
+ | </code> | ||
+ | Vous avez tout en mains pour comprendre ceci : [[doc:programmation:shell:avancee#selecteur-case|Fonctionnalités avancées du Shell: selecteur-case]] | ||
=====E ) Valeurs d'une variable internes ou externes à un script===== | =====E ) Valeurs d'une variable internes ou externes à un script===== |