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 [15/10/2015 18:18] milou [Création, suppression, exportation de variables] |
doc:programmation:shells:script-bash-variables-arguments-parametres [21/10/2015 18:31] milou [Script bash : variables, arguments, paramètres] |
||
---|---|---|---|
Ligne 12: | Ligne 12: | ||
Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | ||
- | ------ | ||
**Nota : Les autres wiki :** | **Nota : Les autres wiki :** | ||
* [[doc:programmation:shells:debuter-avec-les-scripts-shell-bash | debuter-avec-les-scripts-shell-bash]] | * [[doc:programmation:shells:debuter-avec-les-scripts-shell-bash | debuter-avec-les-scripts-shell-bash]] | ||
* ;-) | * ;-) | ||
- | * [[atelier:chantier:script-bash-detail-sur-les-parametres-et-les-boucles|script bash : modification de variable et de paramètre]] | + | * [[doc:programmation:shells:script-bash-detail-sur-les-parametres-et-les-boucles | modification de variable et de paramètre]] |
- | * [[atelier:chantier:script-bash-enchainement-de-commandes-et-etat-de-sortie|script-bash-enchainement-de-commandes-et-etat-de-sortie]] | + | * [[doc:programmation:shells:script-bash-enchainement-de-commandes-et-etat-de-sortie|script-bash-enchainement-de-commandes-et-etat-de-sortie]] |
* [[atelier:chantier:script-bash-etat-de-sorie-et-les-tests|script-bash-etat-de-sorie-et-les-tests]] | * [[atelier:chantier:script-bash-etat-de-sorie-et-les-tests|script-bash-etat-de-sorie-et-les-tests]] | ||
* [[doc:programmation:bash:script:tableaux|script-bash-les-tableaux]] | * [[doc:programmation:bash:script:tableaux|script-bash-les-tableaux]] | ||
Ligne 61: | Ligne 60: | ||
</code> | </code> | ||
>Les programmes (ou commandes) ''touch'' et ''ls'' ont utilisé la valeur de | >Les programmes (ou commandes) ''touch'' et ''ls'' ont utilisé la valeur de | ||
- | >la fonction nommée ''nx_fichier'', dont la valeur correspond à la chaîne | + | > |
+ | >la fonction nommée ''nx_fichier'', dont la valeur correspond à la chaîne | ||
+ | > | ||
>de caractères ''les_fonctions''. | >de caractères ''les_fonctions''. | ||
Ligne 153: | Ligne 154: | ||
</code> | </code> | ||
>Ici ''prenom'' est le nom de la variable, et sa valeur est entrée par l'utilisateur depuis le terminal. | >Ici ''prenom'' est le nom de la variable, et sa valeur est entrée par l'utilisateur depuis le terminal. | ||
+ | > | ||
>Là aussi ces deux commandes peuvent être entrées dans le terminal. | >Là aussi ces deux commandes peuvent être entrées dans le terminal. | ||
Ligne 159: | Ligne 161: | ||
read -p "entrez votre nom et prénom: " nom prenom | read -p "entrez votre nom et prénom: " nom prenom | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
entrez votre nom et prénom: | entrez votre nom et prénom: | ||
- | </code> | + | </file> |
>On entre par exemple les deux chaînes de caractères, ''debian'' et ''facile'', puis on peut récupérer la valeur de chacune des deux variables ''nom'' et ''prenom''. | >On entre par exemple les deux chaînes de caractères, ''debian'' et ''facile'', puis on peut récupérer la valeur de chacune des deux variables ''nom'' et ''prenom''. | ||
Ligne 168: | Ligne 170: | ||
echo $prenom $nom | echo $prenom $nom | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
facile debian | facile debian | ||
- | </code> | + | </file> |
Mais dans un script c'est plus rapide ! 8-) | Mais dans un script c'est plus rapide ! 8-) | ||
Ligne 189: | Ligne 191: | ||
Quelques options utiles de la commande ''read''. | Quelques options utiles de la commande ''read''. | ||
* ''-p'' : afficher un message | * ''-p'' : afficher un message | ||
+ | |||
* ''-n'' : limiter le nombre de caractères | * ''-n'' : limiter le nombre de caractères | ||
+ | |||
* ''-t'' : limiter le temps autorisé pour saisir un message | * ''-t'' : limiter le temps autorisé pour saisir un message | ||
+ | |||
* ''-s'' : ne pas afficher le texte saisi | * ''-s'' : ne pas afficher le texte saisi | ||
On peut utiliser plusieurs options.\\ Par exemple: | On peut utiliser plusieurs options.\\ Par exemple: | ||
Ligne 298: | Ligne 303: | ||
Un processus, c'est un programme en cours d'exécution, mais aussi son environnement d'exécution.\\ | Un processus, c'est un programme en cours d'exécution, mais aussi son environnement d'exécution.\\ | ||
Ainsi le shell qui lance un script est le processus père du script lancé. | Ainsi le shell qui lance un script est le processus père du script lancé. | ||
- | Sur la notion de processus voir [[atelier:chantier:bash-les-differents-caracteres-speciaux?&#notion-de-processus|Notion de processus]] | + | Sur la notion de processus voir [[doc:programmation:shells:bash-les-differents-caracteres-speciaux?&#notion-de-processus|Notion de processus]] |
</note> | </note> | ||
Ligne 307: | Ligne 312: | ||
</code> | </code> | ||
>On déclare la variable ''Coucou'', affectée de la valeur ''Bonjour'' depuis le terminal. | >On déclare la variable ''Coucou'', affectée de la valeur ''Bonjour'' depuis le terminal. | ||
+ | > | ||
>Le shell courant l'a enregistré. | >Le shell courant l'a enregistré. | ||
<code user> | <code user> | ||
Ligne 312: | Ligne 318: | ||
</code> | </code> | ||
>Là, on crée le fichier "test.sh" contenant la ligne : '' echo "Coucou=$Coucou" ''. | >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. | >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> | ||
Ligne 321: | Ligne 328: | ||
</code> | </code> | ||
>On exporte la variable ''Coucou''((Il s'agit ben sûr, de celle déclarée dans le terminal au début de l'exemple)). | >On exporte la variable ''Coucou''((Il s'agit ben sûr, de celle déclarée dans le terminal au début de l'exemple)). | ||
+ | > | ||
>Attention, ce n'est jamais la __valeur__ d'une variable que l'on exporte ! | >Attention, ce n'est jamais la __valeur__ d'une variable que l'on exporte ! | ||
<code user> | <code user> | ||
./test.sh | ./test.sh | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
Coucou="Bonjour" | Coucou="Bonjour" | ||
- | </code> | + | </file> |
>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" ''). | >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" ''). | ||
Ligne 340: | Ligne 348: | ||
./test.sh | ./test.sh | ||
</code> | </code> | ||
- | + | <file config retour de la commande> | |
- | <code> | + | |
Coucou= | Coucou= | ||
- | </code> | + | </file> |
<note> | <note> | ||
Ligne 389: | Ligne 396: | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
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 | ||
a | a | ||
Ligne 397: | Ligne 404: | ||
tous les paramètres a b c | tous les paramètres a b c | ||
- | </code> | + | </file> |
* Tous les arguments passés au scripts $* et $@ sont synonymes | * Tous les arguments passés au scripts $* et $@ sont synonymes | ||
Ligne 412: | Ligne 419: | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
bonjour | bonjour | ||
bonjour à tous | bonjour à tous | ||
bonjour à tous | bonjour à tous | ||
3 | 3 | ||
- | </code> | + | </file> |
* Là de même pour $* et $@ : | * Là de même pour $* et $@ : | ||
Ligne 432: | Ligne 439: | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
bonjour à tous | bonjour à tous | ||
bonjour à tous | bonjour à tous | ||
bonjour à tous | bonjour à tous | ||
1 | 1 | ||
- | </code> | + | </file> |
* Mais avec la commande set qui modifie provisoirement les paramètres : | * Mais avec la commande set qui modifie provisoirement les paramètres : | ||
Ligne 454: | Ligne 461: | ||
</code> | </code> | ||
- | <code > | + | <file config retour de la commande> |
bonjour à tous | bonjour à tous | ||
bonjour à tous | bonjour à tous | ||
bonjour à tous | bonjour à tous | ||
1 | 1 | ||
- | </code> | + | </file> |
* Ou encore : | * Ou encore : | ||
Ligne 476: | Ligne 483: | ||
</code> | </code> | ||
- | <code > | + | <file config retour de la commande> |
bonjour à tous | bonjour à tous | ||
bonjour à tous | bonjour à tous | ||
Ligne 482: | Ligne 489: | ||
3 | 3 | ||
- | </code> | + | </file> |
=====Récupérer la longueur d'une valeur de variable===== | =====Récupérer la longueur d'une valeur de variable===== | ||
Ligne 602: | Ligne 609: | ||
==== Les variables typées pour les calculs : let ou (( ... )) ==== | ==== Les variables typées pour les calculs : let ou (( ... )) ==== | ||
- | Voir : [[atelier:chantier:page-man-bash-iv-symboles-dans-les-calculs-mathematiques?&#operateurs-arithmetiques|les opérateurs arithmétiques]] | + | Voir : [[doc:programmation:shells:page-man-bash-iv-symboles-dans-les-calculs-mathematiques?&#operateurs-arithmetiques|les opérateurs arithmétiques]] |
===Syntaxe=== | ===Syntaxe=== | ||
<code> | <code> | ||
Ligne 642: | Ligne 649: | ||
==== L'affectation arthmétique==== | ==== L'affectation arthmétique==== | ||
- | Voir [[atelier:chantier:page-man-bash-iv-symboles-dans-les-calculs-mathematiques?&#operateurs-d-affectation-arithmetique| les opérateurs d'affectation arithmétique]] | + | Voir [[doc:programmation:shells:page-man-bash-iv-symboles-dans-les-calculs-mathematiques?&#operateurs-d-affectation-arithmetique| les opérateurs d'affectation arithmétique]] |
Cela consiste à affecter à une variable le résultat d'un calcul arithmétique, par la __constante__ (donc avec ''let'') qu'on lui a donné.\\ | Cela consiste à affecter à une variable le résultat d'un calcul arithmétique, par la __constante__ (donc avec ''let'') qu'on lui a donné.\\ |