Les Variables et l'Environnement |
Écrit par VieuxProf
|
01-01-1999 |
- Une variable est associée à une zone de mémoire pour conserver ou échanger une chaîne de texte. Elle est identifiée par un nom (caractères alphanumériques et _).
- Elle a une portée locale limitée au shell qui l'a créée mais elle peut être exportée et devient globale. On la note alors en majuscules.
- création d'une variable :
$ [readonly] mavariable=sa_valeur
$ [readonly] mavariable="sa valeur"
$ [readonly] mavariable='sa valeur'
- remplacement d'une variable par sa valeur :
$mavariable
${mavariable}
set |
affiche toutes les variables définies |
unset mavariable |
supprime une variable locale ou globale |
export |
affiche toutes les variables exportées |
export mavariable=savaleur |
place mavariable dans l'environnement |
env |
affiche toutes les variables d'environnement |
variables prédéfinies |
définie lors de la connexion en interne par le shell ou dans ~/.profile |
- portée globale
- modifiables par l'utilisateur |
- |
variables positionnelles (réservées) |
définies par le shell |
- portée locale (dans le script)
- modifiables par l'utilisateur |
- correspondent aux paramètres numérotés d'un script |
variables spéciales (réservées) |
définies par le shell |
- portée globale
- non modifiables par l'utilisateur |
ex. : $ contient le PID du shell courant |
variables utilisateur |
définies par l'utilisateur |
- portée locale par défaut
- portée globale si exportées ou dans ~/.profile
- modifiables par l'utilisateur |
- |
variables d'environnement |
définies par le shell, les logiciels ou l'utilisateur |
- portée globale
- imposées par le shell ou les logiciels (non modifiables)
ou
- exportées par l'utilisateur ou dans ~/.profile (modifiables) |
- |
- L'environnement est l'ensemble des variables d'environnement. Il est initialement constitué des variables prédéfinies et spéciales, complété après connexion par les variables utilisateurs définies dans les fichiers .profile.
- Une variable d'environnement est une variable dont le shell fournit une copie à sa descendance.
- Quelques variables d'environnement :
HOME |
répertoire de connexion |
IFS |
séparateur de champs |
LOGNAME |
nom de l'utilisateur |
MAIL |
fichier de BAL |
PATH |
chemin vers les binaires |
PS1 |
invite de prompt primaire ($) |
PS2 |
invite de prompt secondaire (>) |
PWD |
répertoire courant |
TERM |
type de terminal |
TZ |
fuseau-horaire GMT (non-GNU) |
- Le fichier /etc/profile définit des paramètres généraux et des variables d'environnement pour l'ensemble des utilisateurs. Il est géré par root.
- Le fichier ~/.profile exécuté par l'utilisateur à chaque connexion complète et modifie le fichier /etc/profile. On y trouve :
- des variables d'environnement
- des options du shell
- des paramètres du terminal
- des droits attribués lors de la création des fichiers.
- Un script peut recevoir des arguments qui sont affectés aux variables positionnelles $0 (nom du script), $1, ...${10},etc.
Exécution du script avec arguments : $ monscript argument1 argument2 argument3
On peut utiliser en complément les variables spéciales suivantes :
* |
ensemble des paramètres sous forme d'un seul argument |
@ |
ensemble des paramètres, un argument par paramètre |
# |
nombre de paramètres passés au script |
$ |
PID du shell courant |
- La commande '$ shift [n]' permet de décaler les paramètres vers la gauche de n positions.
- La commande '$ set argument1 argument2 argument3' permet de remplacer les paramètres d'un script. Elle est souvent utilisée pour isoler les mots d'une ligne et éviter l'emploi des filtres (voir Exemples).
- La commande '$ read variable1 variable2 variable3' permet de créer des scripts interactifs. Elle range le 1er mot dans la 1ère variable, le 2ème dans la 2ème, etc.
Caractères | Expression | Interprétation |
$, ${} |
$mavariable, ${mavariable} |
mavariable est remplacée si elle existe par sa valeur, sinon par rien |
${:-} |
${mavariable:-monargument} |
mavariable est remplacée si elle existe par sa valeur, sinon par la chaine monargument |
${:+} |
${mavariable:+monargument} |
mavariable est remplacée si elle existe par monargument, sinon par rien |
${:+?} |
${mavariable:?monargument} |
mavariable est remplacée si elle existe par sa valeur, sinon affichage d'un message d'erreur contenant monargument et sortie du shell |
${:=} |
${mavariable:=monargument} |
mavariable est remplacée si elle existe par sa valeur, sinon par la chaine monargument et mavariable est créée et initialisée à la valeur monargument |
|
Dernière mise à jour : ( 02-02-2008 )
|