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 | ||
doc:programmation:shell:variables [02/11/2016 16:49] greenmerlin [Les variables en shell] |
doc:programmation:shell:variables [21/02/2023 17:17] (Version actuelle) agp91 [Utiliser les variables dans un script] |
||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
* Objet : Les variables | * Objet : Les variables | ||
* Niveau requis :{{tag>débutant avisé}} | * Niveau requis :{{tag>débutant avisé}} | ||
- | * Commentaires : FIXME | + | * 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à !]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) | ||
- | * Suivi : {{tag>à-tester}} | + | * Suivi : |
* Création par [[user>smolski]] le 27/09/2012 | * Création par [[user>smolski]] le 27/09/2012 | ||
- | * Testé par .... le .... | + | * mis à jour par [[user>greenmerlin]] le 02/11/2016 |
- | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=5936 |C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | + | * Testé par [[user>greenmerlin]] le 02/11/2016 |
- | + | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=5936 |C'est ici]] | |
- | **Nota :** Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | + | |
===== Préalable ===== | ===== Préalable ===== | ||
Ligne 38: | 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 65: | 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 104: | 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 ===== | ||
Dans les scripts, on peut utiliser des variables définies à l'extérieur (avec setenv ou export), mais aussi définir ses variables locales propres au script. \\ | Dans les scripts, on peut utiliser des variables définies à l'extérieur (avec setenv ou export), mais aussi définir ses variables locales propres au script. \\ | ||
On affecte une valeur à une variable avec une commande de la forme : | On affecte une valeur à une variable avec une commande de la forme : | ||
- | nom-de-variable=valeur | + | nom_de_variable=valeur |
Les variables sont utilisées pour stocker des informations. | Les variables sont utilisées pour stocker des informations. | ||
Ligne 115: | Ligne 134: | ||
^ Variables ^ Résultats ^ | ^ Variables ^ Résultats ^ | ||
|$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. Ce sont les paramètres positionnels.| |
- | |$* |La liste de tous les arguments passés au script. | | + | |$* |Tous les paramètres positionnels ($1, $2, etc).\\ $* et $@ : Sont remplacés par les tous les paramètres positionnels sans protection : $1 $2 ... ${n}.\\ "$*" : Est remplacé par touts les paramètres positionnels sans protection. C'est ce qui est retourné qui est protégé par les guillemets doubles, pour ne former qu'un seul mot : "$1 $2 ... ${n}".\\ "$@" : Est remplacé par tous les paramètres positionnels protégés. Ils sont chacun protégé par guillemets doubles : "$1" "$2" ... "${n}". | |
- | |$# |Le nombre d'arguments passés au script. | | + | |$@ |::: | |
+ | |$# |Le nombre d'arguments passés au script (nombre de paramètre positionnel). | | ||
|$? |Le code de retour de la dernière commande lancée. | | |$? |Le code de retour de la dernière commande lancée. | | ||
|$! |Le numéro de process de la dernière commande lancée en tâche de fond. | | |$! |Le numéro de process de la dernière commande lancée en tâche de fond. | |