LinuxInfo
Dezoom

Variables

Mise à jour : Debian 9.1

Les variables sont des paramètres (chaînes de caractère), manipulables par le shell. On s’intéresse ici à la création des variables par l'utilisateur.

1 - Création

1.1 - Principe

$ var=exemple
echo $var
exemple

1.2 - Expression des valeurs

La valeur peut-être définie par :

$ var1=une-chaîne-de-caractères	 
$ echo $var1
une-chaîne-de-caractères
$ var2="une chaîne de caractères"
echo $var2
une chaîne de caractères
$ var3="$var1 $var2"
$ echo $var3
une-chaîne-de-caractères une chaîne de caractères
$ var4=$(ip route)
echo $var4
default via 192.168.0.254 dev wlan0 192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.12
$ var5=$((2**3))
$ echo $var5
8
$ var6=conca	
$ var7=tenation
$ var8=DEBUT$var6${var7}FIN # les accolades sont nécessaires autour de varè afin qu'elle soit identifiée
$ echo $var8
DEBUTconcatenationFIN
$ var5="$var1 $(ip route) $((2**3))"
echo $var5
une-chaîne-de-caractères default via 192.168.0.254 dev wlan0 192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.12 8

1.3 - Liste des variables

$ (set -o posix; set)
BASH=/bin/bash
BASHOPTS=cdspell:checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_COMPLETION_COMPAT_DIR=/etc/bash_completion.d
.........

Elle permet de tester la présence d'une variable :

$ (set -o posix; set)|grep var_test
var_test=azerazerazer
$ compgen -v
BASH
BASHOPTS
BASHPID
BASH_ALIASES
BASH_ARGC
BASH_ARGV
BASH_CMDS
BASH_COMMAND
........

1.4 - Suppression

Pour supprimer une variable et vérifier sa suppression :

$ unset var_test
$ (set -o posix; set)|grep var_test

2 - Variables permanentes

Par défaut, les variables créées pendant une session sont temporaires et disparaissent avec la fermeture du shell. Il est possible de rendre une variable permanente en l'ajoutant à un des fichiers de démarrage du shell, ainsi elle sera disponible à chaque ouverture d'un nouveau shell.

$ echo 'monip=$(dig +short myip.opendns.com @resolver1.opendns.com)'>>~/.bashrc

Relancer la session ou "sourcer" le fichier .bashrc pour rendre la variable disponible :

$ source ~/.bashrc
$ echo $monip
82.67.140.211

3 - Variables d'environnement

$ var2="exemple de création d'une variable d'environnement"
$ export var2
$ export var1="exemple de création d'une variable d'environnement en un temps"
$ printenv
.....
$ printenv LANG
fr_FR.utf8
$ compgen -e
COLORTERM
CUR_WIDTH
DBUS_SESSION_BUS_ADDRESS
DESKTOP_SESSION
DISPLAY
GCC_COLORS
GDMSESSION
GIO_LAUNCHED_DESKTOP_FILE
GIO_LAUNCHED_DESKTOP_FILE_PID
GLADE_CATALOG_PATH
.........