Согласно странице руководства:
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}'
,
envsubst '${VAR1},${VAR3}'
или
envsubst '${VAR1}
${VAR3}'
выводит
VAR1=one
VAR2=${VAR2}
VAR3=three
Или, если вы предпочитаете обратную косую черту:
envsubst \$VAR1,\$VAR2
производит
VAR1=one
VAR2=two
VAR3=${VAR3}
Определенно , интерактивное руководство bundle-gem
было создано из bundle-gem.ronn файл. А ronn
- это формат (и программа), предназначенный для форматирования как справочная страница.
Сначала возьмем файлы (для bundler-gem
и ronn
):
git clone https://github.com/bundler/bundler.git
gem install ronn # this actually depends on mustache, rdiscount and hpricot
И создадим страницу руководства:
$ /home/grochmal/.gem/ruby/2.3.0/bin/ronn -r bundler/man/bundle-gem.ronn
roff: bundler/man/bundle-gem.1
(Вероятно, у вас есть путь к гему в PATH , но я добавил его сюда на всякий случай. Также -r
означает roff
, т.е. формат, используемый для страниц руководства)
И см. страницу руководства:
man bundler/man/bundle-gem.1
Если вы хотите страница руководства, чтобы показать, когда вы выполняете man bundle-gem
, поместите его в какое-нибудь разумное место и добавьте это место в MANPATH
. Например:
mkdir ~/man{,/man1}
cp bundler/man/bundle-gem.1 ~/man/man1/
export MANPATH=$MANPATH:~/man
(Обратите внимание на использование здесь разделов man)
Поскольку ronn
использует hpricot
, вы можете использовать ronn -5
для создания того веб-руководства, которое вы читали.
gem
запустит ronn
для вас, поэтому, если вы установили bundler
с gem
, у вас будет страница руководства в ~ / .gem / ruby / <версия> / gems / bundler- <версия> / man
. К сожалению, gem
не следует соглашению * nix о разделении разделов man на каталоги ( man1
, man2
, ...), поэтому получить его может быть проблематично. страницы руководства из ~ / .gem
(использование MANPATH
здесь не вариант).
Если у вас еще не установлен MANPATH
, значит ваша система использует /etc/man_db.conf
. В этом случае вы должны установить MANPATH
как:
export MANPATH=`manpath`:~/man