Як зазначено в тексті, ви просто повинні посилатися на (наприклад, на $VARNAMEабо ${VARNAME}) змінні, як у звичайній команді оболонки. Однак ви повинні переконатися, що оболонка не розширить їх заздалегідь.
Ось кілька прикладів для ілюстрації цього (припускаючи export FOO=BAR):
$ echo '$FOO$FOO2' | envsubst
BAR
Як бачите, $ "FOO2" було замінено на "", як це не було визначено. Тепер ми можемо обмежити цю заміну лише $ FOO:
$ echo '$FOO$FOO2' | envsubst '$FOO'
BAR$FOO2
використання ""замість ''призведе до заміни, перш ніж вона буде потрібна:
echo '$FOO$FOO2' | envsubst "$FOO"
$FOO$FOO2
(Це становить ефективний виклик, envsubst "BAR"який не виявляє змінних, тому жодна не замінюється.)
Як було manсказано на сторінці, всі змінні, на які посилається посилання SHELL-FORMAT, замінені, тому ми навіть можемо це зробити:
echo '$FOO$FOO2$FOO3' | envsubst '$FOO some more text ${FOO3}'
BAR$FOO2
Як бачите, SHELL-FORMATцілком гнучкі.
Нарешті, параметр --variablesдозволяє оцінити, які змінні обрані для заміни на SHELL-FORMAT:
envsubst --variables '$FOO some more text ${FOO3}'
FOO
FOO3
У прикладі передчасної заміни зверху це показало б помилку:
$ envsubst --variables "$FOO"
(empty string returned)
Як зазначено на сторінці man, envsubstне обробляє жодного stdinput, коли --variablesвін присутній.