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 Les deux révisions suivantes | ||
doc:programmation:shells:debuter-avec-les-scripts-shell-bash [03/06/2014 14:26] Hypathie [E ) État de sortie et les tests] |
doc:programmation:shells:debuter-avec-les-scripts-shell-bash [03/06/2014 14:41] Hypathie [F ) Valeurs d'une variable internes ou externes à un script] |
||
---|---|---|---|
Ligne 708: | Ligne 708: | ||
**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.** | ||
</note> | </note> | ||
- | =====F ) Valeurs d'une variable internes ou externes à un script===== | ||
- | |||
- | ====Pré-requis: utiliser la structure conditionnelle if==== | ||
- | À savoir : | ||
- | * [[atelier:chantier:la-page-man-bash-ii-les-operateurs-lexicographiques|Opérateurs lexicographiques]] | ||
- | * [[atelier:chantier:page-man-bash-iii-les-operateurs-de-comparaison-numerique|les opérateurs de comparaison numérique]] | ||
- | ====Exemples :==== | ||
- | **La valeur (contenu) de la variable1 (var1) et de la variable2 (var2) peuvent être les arguments passés à un script. | ||
- | Un script peut opérer un test sur les chaînes de caractères passées au script depuis le terminal.** | ||
- | (Lancez "mon-script" successivement sans argument, puis un, deux trois, etc. arguments.) | ||
- | <code> | ||
- | #!/bin/bash | ||
- | var1=$1 | ||
- | var2=$2 | ||
- | echo $1 | ||
- | echo $2 | ||
- | if [ $# == 1 ] ; then | ||
- | echo "ERREUR: vous avez entré $@, mais il faut deux arguments !" | ||
- | elif [ $# == 2 ] ; then | ||
- | echo "Les deux arguments que vous avez entré sont $1 et $2" | ||
- | elif [ $# == 0 ] ; then | ||
- | echo "ERREUR: vous n'avez pas entré d'arguments, il en faut deux !" | ||
- | fi | ||
- | </code> | ||
- | |||
- | **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]] | ||
- | |||
- | **Dans ces deux cas les valeurs des variables que l'on testent, sont choisies depuis l'extérieur du script (le script est un processus fils du shell).**\\ | ||
- | |||
- | **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.** | ||
=====G ) Déclaration nulle et modification par le script d'une valeur interne ou externe===== | =====G ) Déclaration nulle et modification par le script d'une valeur interne ou externe===== |