Variables BASH


#1

Voila un petit “listing” des variables bash, ca peut servir si on doit scripter et/ou personnaliser l’environnement de travail.

$BASH_VERSION -> La version de Bash installée sur le système
$DIRSTACK -> La valeur du dessus de la pile de répertoires (affectée par pushd et popd)
$EDITOR -> L'éditeur invoqué par défaut par un script
$EUID -> Numéro d'identifiant << effectif >> de l'utilisateur n'est pas nécessairement le même que $UID
$FUNCNAME -> Nom de la fonction en cours
$GLOBIGNORE -> Une liste de modèles de noms de fichiers à exclure de la correspondance lors d'un remplacement
$GROUPS -> Groupes auxquels appartient l'utilisateur.
$HOME -> Répertoire personnel de l'utilisateur
$HOSTNAME -> Nom de machine
$HOSTTYPE ->  Type de l'hôte, comme $MACHTYPE, identifie le matériel du système
$IGNOREEOF -> Ignore EOF : nombre de fins de fichier (control-D) que le shell va ignorer avant de déconnecter
$MACHTYPE ->  Type de machine.
$OLDPWD ->  Ancien répertoire courant
$OSTYPE -> Type de système d'exploitation
$PATH ->  Chemin vers les binaires, habituellement /usr/bin/, /usr/X11R6/bin/, /usr/local/bin, etc
$PPID -> Le $PPID d'un processus est l'identifiant du processus (PID) père
$PROMPT_COMMAND -> Une variable contenant une commande à exécuter juste avant l'affichage de l'invite principale, $PS1
$PS1 -> Ceci est l'invite principale, vue sur la ligne de commande
$PS2 -> La deuxième invite, vue lorsqu'une saisie supplémentaire est attendue. Elle s'affiche comme << > >>.
$PS3 -> La troisième invite, affichée lors d'une boucle select (voir l'Exemple 10-29)
$PS4 -> La quatrième invite, affichée au début de chaque ligne d'affichage lorsqu'un script a été appelé avec l'option -x. Elle affiche un << + >>
$PWD -> Répertoire courant (répertoire où vous êtes actuellement)
$REPLY -> La valeur par défaut lorsqu'une valeur est donnée par read
$SECONDS -> Le nombre de secondes pendant lequel le script s'exécutait
$SHELLOPTS -> La liste des options activées du shell, une variable en lecture seule
$TMOUT ->  Si la variable d'environnement $TMOUT est initialisée à une valeur différente de zéro appelée time, alors l'invite shell dépassera son délai au bout de time secondes. Ceci causera une déconnexion
$UID -> Numéro de l'identifiant utilisateur
$0, $1, $2, etc. ->  Paramètres de positions, passés à partir de la ligne de commande à un script, passés à une fonction, ou initialisés (set) à une variable
$# -> Nombre d'arguments sur la ligne de commande
$* -> Tous les paramètres de position, vus comme un seul mot.
$@ -> Identique à $*, mais chaque paramètre est une chaîne entre guillemets, c'est-à-dire que les paramètres sont passés de manière intacte, sans interprétation ou expansion. Ceci signifie, entre autres choses, que chaque paramètre dans la liste d'arguments est vu comme un mot séparé
$- -> Les options passées au script (en utilisant set)
$! -> Identifiant du processus (PID) du dernier job ayant fonctionné en tâche de fond
$_ -> Variable spéciale initialisée avec le dernier argument de la dernière commande exécutée
$? ->  Code de sortie d'une commande, d'une fonction ou du script lui-même
$$ -> Identifiant du processus du script lui-même

Et j’en passe… pour des exemples : abs.traduc.org/abs-3.7-fr/internalvariables.html

Référence :
gnu.org/software/bash/manual … html#SEC60
abs.traduc.org/abs-3.7-fr/internalvariables.html
man bash


#2

Pour compléter, il est bien de aussi parler des fichiers de configuration de l’environnement du shell:

.profile .bash_history .bash_profile .bashrc
Avec ça, on peut paramétrer dans le moindre détail le comportement de son shell


#3

Pour ceux que le shell intéresse, il existe un site tres intéressant sur le sujet:

http://cli.asyd.net/

A+


#4

[quote=“ed”]Pour ceux que le shell intéresse, il existe un site tres intéressant sur le sujet:

http://cli.asyd.net/

A+[/quote]
Très intéressant, ce lien … :wink: