@pindex envsubst @cindex @code{envsubst} program, usage @example envsubst [@var{option}] [@var{shell-format}] @end example @cindex shell format string @cindex dollar substitution @cindex environment variables The @code{envsubst} program substitutes the values of environment variables. @noindent @strong{Operation mode} @table @samp @item -v @itemx --variables @opindex -v@r{, @code{envsubst} option} @opindex --variables@r{, @code{envsubst} option} Output the variables occurring in @var{shell-format}. @end table @noindent @strong{Informative output} @table @samp @item -h @itemx --help @opindex -h@r{, @code{envsubst} option} @opindex --help@r{, @code{envsubst} option} Display this help and exit. @item -V @itemx --version @opindex -V@r{, @code{envsubst} option} @opindex --version@r{, @code{envsubst} option} Output version information and exit. @end table In normal operation mode, standard input is copied to standard output, with references to environment variables of the form @code{$VARIABLE} or @code{$@{VARIABLE@}} being replaced with the corresponding values. If a @var{shell-format} is given, only those environment variables that are referenced in @var{shell-format} are substituted; otherwise all environment variables references occurring in standard input are substituted. These substitutions are a subset of the substitutions that a shell performs on unquoted and double-quoted strings. Other kinds of substitutions done by a shell, such as @code{$@{@var{variable}-@var{default}@}} or @code{$(@var{command-list})} or @code{`@var{command-list}`}, are not performed by the @code{envsubst} program, due to security reasons. When @code{--variables} is used, standard input is ignored, and the output consists of the environment variables that are referenced in @var{shell-format}, one per line.