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:script-bash-variables-arguments-parametres [08/07/2014 20:10] Hypathie [script bash : variables, arguments, paramètres] |
doc:programmation:shells:script-bash-variables-arguments-parametres [09/07/2014 07:30] Hypathie [Création, suppression, exportation de variables] |
||
---|---|---|---|
Ligne 294: | Ligne 294: | ||
Coucou="Bonjour" | Coucou="Bonjour" | ||
</code> | </code> | ||
- | puis : | + | >On déclare la variable "Coucou", affectée de la valeur "Bonjour" depuis le terminal. |
+ | >Le shell courant l'a enregistré. | ||
<code user> | <code user> | ||
echo 'echo "Coucou=$Coucou"' > test.sh | echo 'echo "Coucou=$Coucou"' > test.sh | ||
</code> | </code> | ||
- | puis: | + | >Là, on crée le fichier "test.sh" contenant la ligne : '' echo "Coucou=$Coucou" ''. |
+ | >Il contient une variable, de même nom que celle, précédemment déclarée et affectée de la valeur "Bonjour" depuis le terminal. | ||
<code user> | <code user> | ||
chmod u+x test.sh | chmod u+x test.sh | ||
</code> | </code> | ||
- | puis : | + | >Le fichier "test.sh" devient exécutable pour l'utilisateur principal. |
<code user> | <code user> | ||
export Coucou | export Coucou | ||
</code> | </code> | ||
- | puis : | + | >On exporte la variable "Coucou"((Il s'agit de celle déclarée dans le terminal au début de l'exemple)). |
+ | >Ce n'est jamais la valeur d'une valeur qu'on exporte ! | ||
<code user> | <code user> | ||
./test.sh | ./test.sh | ||
Ligne 314: | Ligne 317: | ||
</code> | </code> | ||
- | >La valeur de la variable "Coucou" est exporté et peut valoir pour le script "test.sh" | + | >Il faut que le script déclare une variable de même nom (''Coucou= '') ; qu'il récupère celle exportée depuis le terminal (''$Coucou'') ; et bien évidemment, qu'il affiche (''echo'') tout cela :( ''echo "Coucou=$Coucou" ''). |
- | >qui devient le processus fils du shell courant, à condition que ce script contienne | + | >Dans ces conditions, la valeur de la variable "Coucou" une fois exportée, peut valoir pour la variable du script "test.sh" qui est le __processus fils__ du shell courant. |
- | >une variable de même nom (Coucou= ) que celle exportée. | + | |
>Mais une fois le terminal réinitialisé, si on lance ./test.sh, ce script est le | >Mais une fois le terminal réinitialisé, si on lance ./test.sh, ce script est le | ||
- | >processus fils de ce "nouveau" processus père (= le nouveau terminal) qui n'a plus | + | >processus fils d'un "nouveau" processus père (= le nouveau terminal) qui n'a plus |
> en mémoire la valeur "Bonjour" pour la variable nulle "Coucou" du script. | > en mémoire la valeur "Bonjour" pour la variable nulle "Coucou" du script. | ||
>Et dans ce cas : | >Et dans ce cas : | ||
Ligne 368: | Ligne 371: | ||
echo "tous les paramètres $@" | echo "tous les paramètres $@" | ||
</code> | </code> | ||
- | ET | + | |
<code user> | <code user> | ||
./essai.sh a b c | ./essai.sh a b c | ||
</code> | </code> | ||
- | Retour: | ||
<code> | <code> | ||
Bonjour # on peut récupérer une valeur (ou des valeurs) déclarée(s) et les paramètres de position | Bonjour # on peut récupérer une valeur (ou des valeurs) déclarée(s) et les paramètres de position | ||
Ligne 392: | Ligne 394: | ||
echo $# | echo $# | ||
</code> | </code> | ||
- | ET | + | |
<code user> | <code user> | ||
./essai.sh bonjour à tous | ./essai.sh bonjour à tous | ||
</code> | </code> | ||
- | retour : | ||
<code> | <code> | ||
Ligne 413: | Ligne 414: | ||
echo $# | echo $# | ||
</code> | </code> | ||
- | ET | + | |
<code user> | <code user> | ||
./essai.sh "bonjour à tous" | ./essai.sh "bonjour à tous" | ||
</code> | </code> | ||
- | retour : | ||
<code> | <code> | ||
Ligne 441: | Ligne 441: | ||
</code> | </code> | ||
- | Retour : | ||
<code > | <code > | ||
bonjour à tous | bonjour à tous | ||
Ligne 449: | Ligne 448: | ||
</code> | </code> | ||
- | OU ENCORE : | + | * Ou encore : |
<code> | <code> | ||
Ligne 463: | Ligne 462: | ||
./essai.sh | ./essai.sh | ||
</code> | </code> | ||
- | |||
- | Retour : | ||
<code > | <code > |