logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:programmation:shell:variables [17/01/2014 08:57]
MicP [Définir une variable] "export" => portée var dans sous-shell
doc:programmation:shell:variables [21/02/2023 17:17] (Version actuelle)
agp91 [Utiliser les variables dans un script]
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 31: Ligne 46:
 ===== Définir une variable ===== ===== Définir une variable =====
  
-La méthode permettant d'associer ​une valeur à une variable varie selon le type de ''​shell''​ utilisé :+La méthode permettant d'affecter ​une valeur à une variable varie selon le type de ''​shell''​ utilisé :
  
 Avec ''​C-Shell''​ (csh, tcsh, lcsh), on utilise la commande ''​setenv''​ : Avec ''​C-Shell''​ (csh, tcsh, lcsh), on utilise la commande ''​setenv''​ :
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 =====
  
-Les valeurs des variables sont accessibles aux commandes ​lancées par le shell. \\ +Ces différentes ​variables sont accessibles aux commandes ​exécutées depuis ​le ''​shell''​ où elles ont été déclarées,​ 
-L'ensemble ​de ces valeurs constitue l'environnement.+et les ''​sous-shell''​s ​de ce ''​shell''​ si elles ont été ''​export''​ées ​\\
  
-On peut aussi supprimer une variable de l'​environnement avec :+L'​ensemble de ces variables est appelé ''​variables d'​environnement''​. 
 + 
 +il est possible de supprimer une variable de l'​environnement avec :
    ​unsetenv (C-Shell)    ​unsetenv (C-Shell)
  
Ligne 66: Ligne 98:
 |DISPLAY |L'​écran sur lequel les programmes X travaillent. | |DISPLAY |L'​écran sur lequel les programmes X travaillent. |
 |PRINTER |pour les commandes d'​impression. Contient le nom de l'​imprimante sur laquelle il faut envoyer vos fichiers. | |PRINTER |pour les commandes d'​impression. Contient le nom de l'​imprimante sur laquelle il faut envoyer vos fichiers. |
-|EDITOR |utilisée par mutt, forum, et beaucoup d'​autres commandes. Contient le nom de votre éditeur de textes ​préféré. |+|EDITOR |utilisée par mutt, forum, et beaucoup d'​autres commandes. Contient le nom de votre éditeur de texte préféré. |
 |VISUAL |la même chose qu'​EDITOR. | |VISUAL |la même chose qu'​EDITOR. |
 |SHELL |contient le nom de votre shell. | |SHELL |contient le nom de votre shell. |
Ligne 72: Ligne 104:
 |USER |contient votre nom de login. | |USER |contient votre nom de login. |
 |LOGNAME |la même chose que USER. | |LOGNAME |la même chose que USER. |
-|-PATH |contient une liste de répertoires dans lesquels le shell va chercher les commandes. |+|-PATH |contient une liste des répertoires dans lesquels le shell va chercher les commandes. |
  
 == Nota == == Nota ==
Ligne 80: Ligne 112:
 ==== Exercice ==== ==== Exercice ====
  
-Assurez-vous que+Assurez-vous que le chemin
 <​code>​ <​code>​
-/​usr/​local/​games/​bin</​code>​ +/​usr/​local/​games/​bin 
 +</​code>​
 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 donne 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 97: 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. |
doc/programmation/shell/variables.1389945429.txt.gz · Dernière modification: 17/01/2014 08:57 par MicP

Pied de page des forums

Propulsé par FluxBB