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 Dernière révision Les deux révisions suivantes | ||
doc:programmation:shell:variables [17/01/2014 09:12] MicP [Définir une variable] |
doc:programmation:shell:variables [15/03/2020 16:32] vanvan [Définir une variable] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Les variables ====== | ====== Les variables ====== | ||
+ | |||
+ | * Objet : Les variables | ||
+ | * Niveau requis :{{tag>débutant avisé}} | ||
+ | * Commentaires : Une variable d'environnement est un objet nommé qui contient un nom et une valeur | ||
+ | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) | ||
+ | * Suivi : | ||
+ | * Création par [[user>smolski]] le 27/09/2012 | ||
+ | * mis à jour par [[user>greenmerlin]] le 02/11/2016 | ||
+ | * Testé par [[user>greenmerlin]] le 02/11/2016 | ||
+ | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=5936 |C'est ici]] | ||
===== Préalable ===== | ===== Préalable ===== | ||
Ligne 16: | Ligne 26: | ||
Par exemple, si Robert veut autoriser d'autres adultes que lui à utiliser son hachoir, il peut faire que le programme demande à l'utilisateur quel âge il a ; la réponse est enregistrée dans la variable age ; ensuite, le programme va examiner le contenu de cette variable. Si age >= 18, alors le hachoir peut se mettre en route ; mais si age < 18, le hachoir refuse de se mettre en marche. | Par exemple, si Robert veut autoriser d'autres adultes que lui à utiliser son hachoir, il peut faire que le programme demande à l'utilisateur quel âge il a ; la réponse est enregistrée dans la variable age ; ensuite, le programme va examiner le contenu de cette variable. Si age >= 18, alors le hachoir peut se mettre en route ; mais si age < 18, le hachoir refuse de se mettre en marche. | ||
===== Les variables en shell ===== | ===== Les variables en shell ===== | ||
+ | |||
+ | le paquet coreutils vous donne accès à 2 commandes pour visualiser les variables de votre système | ||
+ | |||
+ | **printenv** et **env**, ses commandes font exactement la meme chose mais l'une évolue dans un context BSD l'autre dans un context *.NIX | ||
+ | de plus la commande **set** sans options vous renverra exactement la meme chose en rajoutant les variables locales de votre shell. | ||
Avec le shell ''bash'', pour utiliser la valeur associée à une variable, on fait précéder le nom de l'étiquette de cette variable par le caractère ''$''. \\ | Avec le shell ''bash'', pour utiliser la valeur associée à une variable, on fait précéder le nom de l'étiquette de cette variable par le caractère ''$''. \\ | ||
Ligne 22: | Ligne 37: | ||
echo $HOME</code> | echo $HOME</code> | ||
- | La commande ''echo'' va afficher le nom du répertoire personnel de l'utilisateur, valeur qui avait été associé à la variable ''HOME'' au moment de son identification sur le système. | + | La commande ''echo'' va afficher le nom du répertoire personnel de l'utilisateur, valeur qui avait été associée à la variable ''HOME'' au moment de son identification sur le système. |
===== Les noms de variables ===== | ===== Les noms de variables ===== | ||
Ligne 49: | Ligne 64: | ||
- pour définir le contenu d'une variable, on écrit simplement son nom, sans le signe $ | - pour définir le contenu d'une variable, on écrit simplement son nom, sans le signe $ | ||
- tandis que pour utiliser le contenu d'une variable, on fait précéder son nom du signe $ | - tandis que pour utiliser le contenu d'une variable, on fait précéder son nom du signe $ | ||
+ | - | ||
+ | Si vous voulez que cette variable <code>$foo</code> soit interprétée par des processus enfants de votre shell (donc lancés depuis lui) il faudra "exporter cette variable. | ||
+ | exemple : | ||
+ | <code bash> | ||
+ | $ foo=bar | ||
+ | $ set | grep foo | ||
+ | foo=bar | ||
+ | $ env | grep foo | ||
+ | $ export foo=bar | ||
+ | $ set | grep foo | ||
+ | foo=bar | ||
+ | |||
+ | $ env | grep foo | ||
+ | foo=bar | ||
+ | </code> | ||
===== Les variables d'environnement ===== | ===== Les variables d'environnement ===== | ||
Ligne 88: | Ligne 118: | ||
se trouve bien dans votre [[:doc:programmation:shell:path|PATH]]. | se trouve bien dans votre [[:doc:programmation:shell:path|PATH]]. | ||
+ | Réponse : | ||
+ | comment le rajouter efficacement | ||
+ | <code> | ||
+ | export PATH="${PATH}:/usr/local/games/bin" | ||
+ | </code> | ||
===== Utiliser les variables dans un script ===== | ===== Utiliser les variables dans un script ===== | ||
Ligne 100: | Ligne 135: | ||
|$0 |Le nom de la commande (i.e. : du script) | | |$0 |Le nom de la commande (i.e. : du script) | | ||
|$1, $2, etc. |Le premier, deuxième, etc, argument passés au script. | | |$1, $2, etc. |Le premier, deuxième, etc, argument passés au script. | | ||
- | |$* |La liste de tous les arguments passés au script. | | + | |$* |Ensemble des paramètres positionnels, équivalant à "$1 $2 ... ${n}". | |
+ | |$@ |Ensemble des paramètres positionnels, équivalant à "$1" "$2" ... "${n}". | | ||
|$# |Le nombre d'arguments passés au script. | | |$# |Le nombre d'arguments passés au script. | | ||
|$? |Le code de retour de la dernière commande lancée. | | |$? |Le code de retour de la dernière commande lancée. | |