Linux 工具命令(03): 使用 envsubst 渲染配置文件

时间:2023-02-23 20:02:57

Linux 工具命令(03): 使用 envsubst 渲染配置文件

如果在 公众号 文章发现状态为 已更新, 建议点击 查看原文 查看最新内容。

状态: 未更新

原文链接:​https://typonotes.com/posts/2023/02/22/envsubst-usage/​

​envsubst​​ 替换 shell 字符串或脚本中的环境变量。

这个一个非常有用的命令, 在 ​​nginx​​ 容器镜像中, 就使用了这个命令进行了 ​​启动文件的初始化​​。

在日常工作中, 也常常用来渲染 环境变量 到配置文件的模版中。

在不使用任何选项时, 将 ​​stdin​​ 复制到 ​​stdout​​, 用适当的环境变量值替换任何环境变量字符串,例如 ​​$VARIABLE​​ 或 ​​${VARIABLE}​​。

例如,​​My editor is $EDITOR​​ 将转换为 ​​My editor is /usr/bin/emacs​​ 。

三种使用模式

  1. 默认模式, 这种模式会替换所有 变量站位符, 包括 ​​$abc​​ 或者 ​​${abc}​​, 如果变量不存在, 则使用 进行替换。
## 全部替换
$ envsubst < input-file.txt > output-file.txt
  1. 白名单模式, 这种模式可以指定 需要替换白名单变量

这种模式就是的麻烦点在于 当白名单变量 太多的时候, 命令看起来就乱糟糟的。 同时扩展性不足, 每增加一个变量就需要修改渲染命令。

## 白名单模式
$ envsubst '${key1} ${key2}' < input-file.txt > output-file.txt
  1. 命令行管道, 看看就好, 从来没这么用过。
$ echo '${abc}' | envsubst

安装方式

envsubst: command not found

当出现找不到命令时, 安装方式可以参考

  1. 在 ​​alpine​​ 中安装
$ apk add --no-cache gettext

alpine 安装包搜索小技巧: ​​site:pkgs.alpinelinux.org envsubsst​

Linux 工具命令(03): 使用 envsubst 渲染配置文件

  1. 在 ​​ubuntu​​ 中安装
$ apt install gettext-base
# 或者
$ apt install gettext

同样的, ubuntu 安装包搜索小技巧

site:manpages.ubuntu.com telnet

互相吹捧, 共同进步

大家好, 我是老麦, 我将每天 早上9点 为你分享一篇好文章。

Linux 工具命令(03): 使用 envsubst 渲染配置文件