L'accès à une valeur par indirection est possible en shell. Pour cela il faut procéder à deux substitutions de variable l’une après l’autre. Le détail de la substitution de variable est abordé dans le wiki etapes_de_substitution . Pour relancer une phase de substitution on utilisera la commande eval. On indique au shell que le premier caractère ’$’ est à prendre littéralement. L’inhibition caractère sert à cela, on écrit donc:
repertoire=HOME # première substitution echo \${$repertoire} ${HOME}
Ensuite il faut refaire une autre évaluation pour substituer la variable HOME avant de faire l’exécution de la ligne de commande:
eval echo \${$repertoire} /home/yoann
En Bash, pour faire un accès par indirection, on peut donc également écrire:
echo ${!repertoire} /home/yoann