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 14:26] Hypathie [E ) État de sortie et les tests] |
doc:programmation:shells:debuter-avec-les-scripts-shell-bash [03/06/2014 14:43] Hypathie [J ) Les fonctions] |
||
---|---|---|---|
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==== | + | =====F ) Déclaration nulle et modification par le script d'une valeur interne ou externe===== |
- | À 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===== | + | |
**Pré-requis : utiliser les structures de contrôle** | **Pré-requis : utiliser les structures de contrôle** | ||
Voir : | Voir : | ||
Ligne 796: | Ligne 764: | ||
</code> | </code> | ||
- | =====H ) Déclarer des paramètres de position : set===== | + | =====G ) Déclarer des paramètres de position : set===== |
==== syntaxe de set==== | ==== syntaxe de set==== | ||
À savoir : variables de substitution prédéfinies [[atelier:chantier:bash-les-differents-caracteres-speciaux?&#variables-de-substitution-predefinies-principalement-dans-les-scripts]] | À savoir : variables de substitution prédéfinies [[atelier:chantier:bash-les-differents-caracteres-speciaux?&#variables-de-substitution-predefinies-principalement-dans-les-scripts]] | ||
Ligne 913: | Ligne 881: | ||
</code> | </code> | ||
- | =====I ) Supprimer les paramètres de position===== | + | =====H ) Supprimer les paramètres de position===== |
====Exemple==== | ====Exemple==== | ||
**même script que ci-dessus mais on dé-commente set - - (on enlève # ligne 5) :** | **même script que ci-dessus mais on dé-commente set - - (on enlève # ligne 5) :** | ||
Ligne 1019: | Ligne 987: | ||
</note> | </note> | ||
- | =====J ) Les fonctions===== | + | =====I ) Les fonctions===== |