Comme indiqué par le texte, il vous suffit de référencer (par exemple par $VARNAMEou ${VARNAME}) les variables comme dans une commande shell habituelle. Cependant, vous devez vous assurer que le shell ne les développe pas au préalable.
Voici quelques exemples pour illustrer cela (en supposant export FOO=BAR):
$ echo '$FOO$FOO2' | envsubst
BAR
Comme vous pouvez le voir, $ FOO2 a été remplacé par "" car il n'a pas été défini. Nous pouvons maintenant limiter ce remplacement à seulement $ FOO en:
$ echo '$FOO$FOO2' | envsubst '$FOO'
BAR$FOO2
utiliser à la ""place de ''entraînerait une substitution avant qu'elle ne soit voulue:
echo '$FOO$FOO2' | envsubst "$FOO"
$FOO$FOO2
(Cela revient à l'appel effectif envsubst "BAR"qui ne détecte aucune variable, donc aucune n'est remplacée.)
Comme le mandit la page, toutes les variables référencées SHELL-FORMATsont remplacées, nous pouvons donc même le faire:
echo '$FOO$FOO2$FOO3' | envsubst '$FOO some more text ${FOO3}'
BAR$FOO2
Comme vous pouvez le voir, le SHELL-FORMATest assez flexible.
Enfin, le paramètre --variablesvous permet d'évaluer quelles variables sont sélectionnées pour la substitution par SHELL-FORMAT:
envsubst --variables '$FOO some more text ${FOO3}'
FOO
FOO3
Dans l'exemple de substitution prématurée ci-dessus, cela aurait montré l'erreur:
$ envsubst --variables "$FOO"
(empty string returned)
Comme indiqué dans la page man, envsubstne traite aucun stdinput lorsqu'il --variablesest présent.