-
Notifications
You must be signed in to change notification settings - Fork 16
/
bash_variables.txt
151 lines (142 loc) · 9.4 KB
/
bash_variables.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
BASH_VARIABLES
BASH VARIABLES ==> #Il s'agit de variables affectant le comportement de
#Bash. Certaines sont par défaut (mais peuvent être
#modifiées par une variable exportées), les autres
#peuvent être déclarées le temps d'un shell ou exportées
#aux enfants.
#Un subprocess se lançant hérite donc :
# - au moins des bash variables par défaut, au mieux
# de leur version modifiée et exportée
# - des autres bash variables exportées
# - des variables non bash, mais exportées
#On appelle environment variables les variables
#exportées. Elles sont en général déclarées dans les
#fichiers de configuration du shell.
#Il existe aussi des fonctions Bash : elles peuvent être
#par défaut et/ou exportées de même.
#Par ailleurs, certaines variables ne sont supportées
#qu'en shell interactif (par exemple $COLUMNS)
env #affiche les environment variables du shell, sous la
printenv #forme VAR=VALEUR (commandes externes)
export #Même chose, mais sous la forme declare -LETTRE VAR=
export -P #"VALEUR", où LETTRE dépend du type de la variable
declare #Imprime les environment variables, les variables non
set #exportées, et les bash variables par défaut (sauf
typeset #quelques rares exceptions)
BASH VARIABLES PAR #Voici la liste des variables Bash par défaut et
DEFAUT ET READONLY ==> #readonly :
$BASHOPTS #Liste des options complexes, séparées par ":". Par
#défaut, "cmdhist:extquote:force_fignore:hostcomplete:
#interactive_comments:progcomp:promptvars:sourcepath".
#Les logins shells ajoutent "login" et les interactive
#shells "expand_aliases"
BASH VARIABLES PAR #Voici la liste des variables Bash par défaut et
DEFAUT NON READONLY ==> #non readonly :
$BASH #Chemin du shell utilisé. Défaut : /bin/bash
$SHELL #Même chose.
$BASH_COMMAND=echo "BASH_COMMAND=$BASH_COMMAND"
$BASH_LINENO=0
$BASH_SOURCE=./ooo.sh
$BASH_SUBSHELL #How deep Bash is nested avec $( ), ` ` ou ( ) (défaut :
#0)
$BASH_VERSINFO #Version de bash sous forme d'array a 6 dimensions.
#exemple des 6 dimensions : 3 00 14 1 release i386-
#redheat-linux-gnu. La dernière valeur est la même que
#$MACHTYPE
$MACHTYPE #Architecture précise de l'ordinateur
$BASH_VERSION #Version de bash sous forme de string. Ces deux
#dernieres variables sont a preferees a $BASH et $SHELL
#pour checker le shell utilise
$BASHPID #Est égal à $$, sauf dans un sub-shell avec $( ), ` `,
#( ) ou |, où il change.
$COMP_WORDBREAKS=' \t$"\'@><=;|&(:'
$DIRSTACK #Pile de répertoires mémorisées avec pushd et popd.
#Défaut : répertoire courant.
$EUID=0
$GROUPS #id du groupe auquel appartient l'utilisateur
$HISTCMD=1
$HISTFILE #Fichier historique. Défaut : ~/.bash_history (shopt -o
#history doit être activé)
$HISTFILESIZE #Nombre de lignes maximales du fichier historique.
#Défaut : 500 (shopt -o history doit être activé)
$HISTSIZE #Nombre de lignes maximales de l'historique temporaire
#Défaut : 500 (shopt -o history doit être activé)
$HOSTNAME #Nom de l'ordinateur (exemple : ether-laptop)
$HOSTTYPE #Architecture de l'ordinateur (exemple : x86_64)
$IFS='\n\t ' #Separateur de mot du shell. par defaut espace, tab et
#newline. Attention le reassigner donne parfois des
#resultats inattendus
$LINENO #Numero de la ligne du script/shell. utile pour
#debuggage
$MAILCHECK=60 (interactive shell slt)
$OPTERR #Utilisée par optargs
$OPTIND #Utilisée par optargs
$OSTYPE #Famille d'OS utilisée (exemple : linux-gnu)
$PATH #Repertoires dans lequel le shell cherche lorsqu'une
#commande est executée sans commencer par un slash.
#PATH=${PATH}:/autre/chemin/ pour ajouter des
#répertoires
#Un ":" au début de PATH indique le répertoire courant
#(à éviter pour des raisons de sécurité)
$PIPESTATUS #Array contenant l'exit code de chaque pipe de la
#dernière commande (une seule dimension si pas de pipe)
$PPID #PID du shell parent
$PS1 #String imrpimée avant le prompt dans un interactive
#shell.
$PS2 #String imprimée quand une ligne entrée est incomplete,
#par exemple par oubli d'une parenthese ou ajout d'un \
#a la fin d'une ligne (interactive shell slt)
$PS4 #String imprimée avec lé débuggage de l'option -x. Par
#défaut "+ "
$PWD #Répertoire courant (défaut : $HOME)
$RANDOM #Nombre généré aléatoirement
$SECONDS #Nombre de secondes que le prompt a ete execute. Utile
#pour assigner unt temporalite aux commandes ou
#au script lui-meme
$SHELLOPTS #Liste des options simples, séparées par ":". Par
#défaut, "braceexpand:hashall:interactive-comments"
#Les interactive shells ajoutent "emacs:histexpand:
#history:monitor"
$SHLVL #Level of the shell/sub-shell.
$UID #ID de l'utilisateur as specified in /etc/passwd.
${BASH_ALIASES[@]} #Associative array dont les indexs sont les alias, et
#les valeurs les alias expanded.
${BASH_ARGC[@]} #Lors d'une récursion de subroutines (source ou
#function), chaque récursion a une valeur dans cette
#array avec le nombre d'arguments passés à la fonction
#ou à source (minimum 1 pour $0). L'option complexe
#extdebug doit être activée.
${BASH_ARGV[@]} #Lors d'une récursion de subroutines (source ou
#function), chaque récursion a une valeur dans cette
#array avec les arguments passés à la fonction ou à
#source, séparés les uns des autres par un espace.
#L'option complexe doit être activée
${BASH_CMDS[@]} #Associative array dont les indexs sont les commandes
#enregistrées dans la table de hash, et les valeurs
#leur chemin
$BASH_COMMAND #La ligne de commande en cours d'exécution
$BASH_ENV #Si assigné, fichier lu par un non-interactive shell en
#se lançant
$CDPATH #liste de chemins séparées par ":". Ces chemins seront
#examinés en plus du répertoire courant lors de
#l'interprétation d'un chemin relatif avec cd
$COLUMNS #Nombre de colonnes du shell (seulement shells
#interactifs)
$DISPLAY
${FUNCNAME[@]} #Dans une récursion de fonctions, array contenant le nom
#de chaque fonction (index 0 pour la fonction courante)
${BASH_SOURCE[@]} #Même chose, mais pour une récursion de fichiers sourcés
$HOME #Home de l'utilisateur : argument par défaut de cd,
#répertoire courant par défaut d'un shell et expansion
#de ~
$LINES #nombre de lignes du shell, utile pour débuggage
$OLDPWD #repertoire precedent (et non superieur)
$OPTARG #Utilisé par optargs
$PS3 #String imprimée avec une select loop
$TERM #Terminal utilise. Ex : xterm
$TMOUT #Si initialisee avec la valeur N, execute un logout
#apres N secondes
$TMPDIR #Modifie le répertoire temporaire (/tmp sinon)
$USER #Nom de l'utilisateur, tel que spécifié dans /etc/passwd