A propos des variables de type local en Bash.
Tout d'abord, la sécurité.
Afin d'écrire plus rapidement, on se retrouve souvent à déclarer et initialiser la variable en même temps :
local var="plouf plouf"
Sauf qu'en faisant ça, l'ordre d'exécution est le suivant :
Ce qui signifie que la variable reste accessible pendant un instant au niveau global. Il faut donc mieux faire la déclaration et l'instanciation en deux temps :
local var
var="plouf plouf"
Ce qui m'amène au deuxième point. Une fois qu'une variable a été déclarée local, il n'est pas besoin de remettre le mot-clef local à chaque instanciation. Ainsi, si je considère le script suivant :
#/usr/bin/env bash
ma_fonction()
{
local var = "ALEX"
echo "$var"
var="TOM"
echo "$var"
}
ma_fonction
echo "<$var>"
La sortie sera :
ALEX
TOM
<>