Aller au contenu

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
  • 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