envsubst は、シェル文字列またはスクリプト内の環境変数を置き換えます。オプションなしで使用すると、stdin を stdout にコピーし、$VARIABLE や ${VARIABLE} などの環境変数文字列を適切な環境変数値に置き換えます。したがって、「My editor is $EDITOR」は「My editor is /usr/bin/emacs」に変換されます。シェル形式を指定すると、シェル形式で参照される変数への置換が制限されます。
envsubst コマンド ライン オプション
以下に示すように、envsubst コマンドにはほとんどオプションがありません:
オプション | 説明 |
---|---|
-h, –help | ヘルプ メッセージを出力して終了します。 |
-v、–変数 | 参照されている変数をシェル形式で表示して終了します。 |
-V、–バージョン | バージョン情報を出力して終了します。 |
envsubst コマンドの実行中に以下のようなエラーが発生した場合:
envsubst: command not found
gettext をインストールしてみてください。 ディストリビューションの選択に応じてパッケージ化します。
分布 | コマンド |
---|---|
OS X | brew install gettext |
Debian | apt-get install gettext-base |
Ubuntu | apt-get install gettext-base |
アルパイン | apk add gettext |
Arch Linux | pacman -S gettext |
カリ Linux | apt-get install gettext-base |
CentOS | yum install gettext |
Fedora | dnf install gettext |
Raspbian | apt-get install gettext-base |
envsubst コマンドの例
1. stdin の環境変数を置き換えて stdout に出力:
$ echo '$HOME' | envsubst
2. 入力ファイルの環境変数を置き換えて、stdout に出力します。
$ envsubst < path/to/input_file
3. 入力ファイルの環境変数を置き換えて、ファイルに出力します:
$ envsubst < path/to/input_file > path/to/output_file
4. スペースで区切られたリストから入力ファイルの環境変数を置き換えます:
$ envsubst '$USER $SHELL $HOME' < path/to/input_file