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 17:04] greenmerlin [Les variables] |
doc:programmation:shell:variables [21/02/2023 17:17] (Version actuelle) agp91 [Utiliser les variables dans un script] |
||
---|---|---|---|
Ligne 5: | Ligne 5: | ||
* Commentaires : Une variable d'environnement est un objet nommé qui contient un nom et une valeur | * 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>à-placer}} | + | * Suivi : |
* Création par [[user>smolski]] le 27/09/2012 | * Création par [[user>smolski]] le 27/09/2012 | ||
* mis à jour par [[user>greenmerlin]] le 02/11/2016 | * mis à jour par [[user>greenmerlin]] le 02/11/2016 | ||
Ligne 37: | 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 65: | ||
- 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é par des processus enfant de votre shell (donc lancé depuis lui) il faudra "exporté cette variable. | + | 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. |
- | example : | + | exemple : |
<code bash> | <code bash> | ||
$ foo=bar | $ foo=bar | ||
Ligne 127: | Ligne 127: | ||
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 134: | 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. | |