На сторінці чоловіка:
envsubst [OPTION] [SHELL-FORMAT]
Якщо задано SHELL-FORMAT, замінюються лише ті змінні середовища, на які посилається SHELL-FORMAT; інакше всі посилання на змінні середовища, що виникають у стандартному вході, підміняються.
Де рядки SHELL-FORMAT - це "рядки із посиланнями на змінні оболонки у формі $variable
або ${variable}
[...] Імена змінних повинні складатися виключно з буквено-цифрових або підкреслюваних символів ASCII, а не починатись з цифри і бути порожнім; інакше така змінна посилання є ігнорується ". .
Отже, потрібно передавати відповідні імена змінних envsubst
у рядок формату оболонки (очевидно, їх потрібно уникати / цитувати, щоб передати їх буквально envsubst
). Приклад:
вхідний файл, наприклад infile
:
VAR1=${VAR1}
VAR2=${VAR2}
VAR3=${VAR3}
і деякі такі цінності, як
export VAR1="one" VAR2="two" VAR3="three"
потім біг
envsubst '${VAR1} ${VAR3}' <infile
або
envsubst '${VAR1},${VAR3}' <infile
або
envsubst '${VAR1}
${VAR3}' <infile
виходи
VAR1=one
VAR2=${VAR2}
VAR3=three
Або якщо ви віддаєте перевагу зворотній косої риси:
envsubst \$VAR1,\$VAR2 <infile
виробляє
VAR1=one
VAR2=two
VAR3=${VAR3}