Types et typage des variables#
Variables scalaires#
- Variables scalaires : type le plus simple de variable.
- Déclaration dans ksh et bash :
varname=value
(pas d'espace autour du signe égal). - Affichage de la valeur d'une variable :
echo $varname
. - Les variables scalaires ne peuvent contenir qu'une seule valeur à la fois.
Variables d'environnement#
- Les variables d'environnement sont accessibles à tous les processus de l'utilisateur.
- Pour définir une variable d'environnement dans ksh et bash :
export VARNAME=value
. - Accéder à la valeur d'une variable d'environnement :
echo $VARNAME
. - Les variables d'environnement courantes incluent
PATH
,HOME
,USER
, etc.
Variables normales, locales et globales#
- Les variables (normales) ne sont accessibles que dans le shell ou le script où elles ont été définies.
- Les variables locales, sont accessibles seulement au sein de la fonction qui les a défini.
- Les variables globales, ou variables d'environnement, sont accessibles à tous les processus de l'utilisateur.
- Pour définir une variable (normale) : varname=value
- Pour définir une variable locale
- dans POSIX:
varname=value
- dans bash :
local varname=value
- dans POSIX:
- Pour définir une variable globale dans ksh et bash :
export varname=value
L'instruction typeset#
Syntaxe#
typeset [-a] [-i] [-r] [-x] var1 [var2 ?]
typeset
Les shells évolués (Korn Shell, Bourne Again Shell et autres descendants) permettent de restreindre les propriétés des variables et correspondent à une certaine forme de typage « simpliste ».
l'instruction
declare
accessible uniquement en Bourne Again Shell (et autres descendants) est un synonyme de l'instruction typeset
.
L'instruction typeset (2)#
Exemple d'usage#
typeset -a var
: la variable sera traitée comme un tableau.typeset -i var
: la variable sera traitée comme un entier et peut être incluse dans des opérations arithmétiques.typeset -r var
: la variable sera mise en « lecture seule » (équivalent de « readonly »).typeset -x var
:la variable sera exportée automatiquement dans les processus fils (équivalent de « export »).
Déclaration typée des variables#
typeset var | déclaration d'une chaîne de caractères
integer var | déclaration d'un entier
typeset -i var | déclaration d'un entier
typeset -r var = valeur | définition d'une constante
readonly var = valeur | définition d'une constante
On peut utiliser des tableaux qui ne sont déclarés que lors de leur
assignation: tab[100]=toto