利用 Linux 指令 envsubst 產生設定檔
Posted on Feb 23, 2018 in Unix-like 命令列教學 by Amo Chen ‐ 1 min read
最近在 k Docker 相關文件時,發現一個好用的指令 envsubst ,因此特別紀錄一下。
The envsubst program substitutes the values of environment variables.
因為撰寫 Dockerfile 時會有將設定檔放進 Docker 內的需求,而設定檔中又有些必須設定為變數,視不同情況寫不一樣的值進去,例如針對開發環境跟生產環境的區別有不一樣的設定。
這時最簡單的方法是利用環境變數(environment variables)搭配 envsubst
來產生設定檔。
而 envsubst
所做的事就是將設定檔樣板(template)內的變數用相對應的環境變數的值取代掉,例如以下是設定檔樣板範例:
My name is ${USER}
My home path is ${HOME}
接下來輸入指令:
$ envsubst < myconfig.conf
就會輸出結果:
My name is foo
My home path is /home/foo
可以看到 ${USER}
${HOME}
都被換成環境變數中的 USER, HOME 的值。
如果要生成設定檔,就只要再加上重導向輸出到一個檔案即可,例如:
$ envsubst < myconfig.conf > config.conf
算是一個簡單又方便的指令,值得學習。