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 [10/07/2014 12:22] Hypathie [Création, suppression, exportation de variables] |
doc:programmation:shells:script-bash-variables-arguments-parametres [10/07/2014 12:55] Hypathie [Typologie des variables] |
||
---|---|---|---|
Ligne 44: | Ligne 44: | ||
>La valeur ''ValeurDeLaVariable'' a été mémorisée. | >La valeur ''ValeurDeLaVariable'' a été mémorisée. | ||
- | ===$nom-de-la-variable=== | + | ===$nom_de_la_variable=== |
Pour "utiliser" une variable, on se sert de sa valeur : il faut donc appeler sa valeur et cela se fait avec le caractère spécial ''$'' accolé au nom de la variable : | Pour "utiliser" une variable, on se sert de sa valeur : il faut donc appeler sa valeur et cela se fait avec le caractère spécial ''$'' accolé au nom de la variable : | ||
Ligne 122: | Ligne 122: | ||
* Syntaxe : | * Syntaxe : | ||
<code> | <code> | ||
- | read nom-de-la-variable | + | read nom_de_la_variable |
</code> | </code> | ||
*La valeur est enregistrée par l'utilisateur sur l'entrée standard (i.e. ce qu'on écrit à l'invite de commande).\\ | *La valeur est enregistrée par l'utilisateur sur l'entrée standard (i.e. ce qu'on écrit à l'invite de commande).\\ | ||
Ligne 235: | Ligne 235: | ||
==== Suppression de variable : unset==== | ==== Suppression de variable : unset==== | ||
- | Soit le script "essai.sh" : passons à ce script l'argument "vous" | + | Soit le script "essai.sh" : passons à ce script l'argument ''vous'' |
<code bash> | <code bash> | ||
Ligne 479: | Ligne 479: | ||
=====Récupérer la longueur d'une valeur de variable===== | =====Récupérer la longueur d'une valeur de variable===== | ||
- | * Pour obtenir la longueur d'une chaîne stockée dans une variable, on écrit ${#VAR}. | + | * Pour obtenir la longueur d'une chaîne stockée dans une variable, on écrit ''${#VAR}''. |
Exemples : | Exemples : | ||
Ligne 488: | Ligne 488: | ||
</code> | </code> | ||
- | * Pour récupérer la longueur d'un paramètre de position | + | * Pour récupérer la longueur d'un paramètre de position : |
FIXME | FIXME | ||
Ligne 494: | Ligne 494: | ||
=====Substitutions de commande===== | =====Substitutions de commande===== | ||
- | ====Utilisation ==== | + | ===Utilisation === |
Permet de se servir de la sortie d'une commande dans un autre contexte pour ; | Permet de se servir de la sortie d'une commande dans un autre contexte pour ; | ||
- affecter cette sortie à une variable ; | - affecter cette sortie à une variable ; | ||
Ligne 500: | Ligne 500: | ||
- etc. | - etc. | ||
- | ====deux syntaxes :==== | + | ===Deux syntaxes :=== |
<code> | <code> | ||
`commande` | `commande` | ||
Ligne 511: | Ligne 511: | ||
</code> | </code> | ||
- | ===$(cmd) : des exemples=== | + | ====Substitution simple : $(commande)==== |
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
Ligne 525: | Ligne 525: | ||
echo $(pwd ; ls) | echo $(pwd ; ls) | ||
</code> | </code> | ||
- | === $(cmd) : imbrication de commandes :=== | + | ====Imbrication de commandes : $(cmd $(cmd))==== |
<code bash> | <code bash> | ||
echo $( ls $(pwd)/Documents) | echo $( ls $(pwd)/Documents) | ||
</code> | </code> | ||
- | *avec set : | + | === Imbrication avec ''set'' === |
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
Ligne 549: | Ligne 549: | ||
====declare et typeset ==== | ====declare et typeset ==== | ||
- | ^ commandes ^options ^ | + | ^ commandes ^options ^ |
- | |declare/typeset |-r lecture seule | | + | |declare/typeset |''-r'' : lecture seule | |
- | |declare/typeset |-i entier | | + | |declare/typeset |''-i'' : entier | |
- | |declare/typeset |-a tableau (array) | | + | |declare/typeset |''-a'' tableau (array) | |
- | |declare/typeset |-f fonction(s) | | + | |declare/typeset |''-f'' : fonction(s) | |
- | |declare/typeset |-x export | | + | |declare/typeset |''-x'' : export | |
- | |declare/typeset |-x var=$value | | + | |declare/typeset |''-x'' : ''var=$valeur'' | |
Voir : [[http://abs.traduc.org/abs-5.1-fr/ch09s04.html|Guide avancé d'écriture des scripts Bash: 9.4. Typer des variables : declare ou typeset]] | Voir : [[http://abs.traduc.org/abs-5.1-fr/ch09s04.html|Guide avancé d'écriture des scripts Bash: 9.4. Typer des variables : declare ou typeset]] | ||
- | ===Remarques sur la commande declare -i et les calculs === | + | ===Remarques sur la commande "declare" et les calculs === |
<note important> | <note important> | ||
**Méthode non POSIX**\\ | **Méthode non POSIX**\\ | ||
- | * La valeur d'une variable peut une expression arithmétique, pour initialiser une variable de type entier on utilise l'option -i de la commande declare : declare -i nom[=expression] nom[=expression] ... | + | * La valeur d'une variable peut une expression arithmétique, pour initialiser une variable de type entier on utilise l'option ''-i'' de la commande ''declare'' :\\ ''declare -i nom[=expression] nom[=expression] ...'' |
<code bash> | <code bash> | ||
Ligne 575: | Ligne 575: | ||
</code> | </code> | ||
- | * Pour que la valeur d'une variable ne soit pas accidentellement modifier, il faut ajouter l'attribut -r. | + | * Pour que la valeur d'une variable ne soit pas accidentellement modifier, il faut ajouter l'attribut ''-r''. |
<code bash> | <code bash> | ||
Ligne 583: | Ligne 583: | ||
echo $(($a+$b)) | echo $(($a+$b)) | ||
</code> | </code> | ||
- | retour | + | |
<code> | <code> | ||
80 | 80 | ||
</code> | </code> | ||
- | **Méthode POSIX : Les commandes let et ( ( ... ) ) permettent de typer les variables pour effectuer des calculs sur les variables (synonyme de declare -i).** | + | **Méthode POSIX** : Les commandes ''let'' et ''<nowiki>(( ... ))</nowiki>'' permettent de typer les variables pour effectuer des calculs sur les variables (synonyme de ''declare -i''). |
</note> | </note> | ||