首页 > 系统相关 >Linux 工具命令(03): 使用 envsubst 渲染配置文件

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

时间:2023-03-14 11:34:40浏览次数:53  
标签:03 配置文件 模式 file Linux 白名单 txt envsubst 替换

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

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

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

site:manpages.ubuntu.com telnet

互相吹捧, 共同进步

欢迎和我一起学习进步, 如果有什么问题, 可以给我私信留言。 或者

公众号

标签:03,配置文件,模式,file,Linux,白名单,txt,envsubst,替换
From: https://blog.51cto.com/bashrc/6120135

相关文章

  • Linux环境编程必须懂的几个概念
    Linux系统对于初学编程的程序员来说是必须要要重点掌握好的,这样才能更好的编写出代码,那么在平常使用中我们需要注意那些知识点,懂得这几个方面让你Linux爬虫让你得心应手。系......
  • linux系统 u盘无法复制粘贴显示Read-only file system
    参考https://support.huaweicloud.com/trouble-ecs/ecs_trouble_0330.html如果是u盘内文件损坏导致的,umount重新卸载挂载方式无法解决,则可以如下解决termial中输入sudof......
  • springboot 中使用@Value 获取配置文件中参数问题
    springboot中使用@Value("${spring.redis.password}")获取配置文件中参数时,如果配置文件中没有相关参数,项目启动时会报错Causedby:java.lang.IllegalArgumentExcep......
  • CentOS -Linux 等保-安全加固相关配置
     1、口令锁定策略规则描述:设置口令认证失败后的锁定策略为了保障用户系统的安全,建议用户设置口令出错次数的阈值,以及由于口令尝试被锁定用户的自动解锁时间。用户锁定......
  • (原创)【B4A】一步一步入门07:EditText,文本框、密码框、键盘样式、提示文本(控件篇03)
    一、前言本篇教程,我们来讲一下常用的控件:EditText(文本输入框)。本篇教程将会讲解文本框的基本使用,如:提示文本、密码文本、键盘样式等。相信看完的你,一定会有所收获!本文......
  • 【Linux】服务器免密登录
    ssh-copy-id-i~/.ssh/id_rsa.pub<user>@<server>  免密登录,需要先在本机生成公钥,然后将公钥拷贝到远程主机,拷贝的过程,既可以手动(在远程主机根目录下创建.ssh目录,然......
  • curl_easy_strerror Couldn't resolve host name
    whenuselibucrl(c++)tocodeinubuntu16.04,thendockerittothecentos8,reportthiserror:[ERROR]2023-03-13_13:33:56line715curl_oper.cpp:couldno......
  • Linux的文件权限管理
    Linux文件权限管理介绍一:Ubuntu简介1、什么是UbuntuUbuntu是基于Debian开发的一个开源的Linux操作系统,Ubuntu这个名字名称来⾃⾮洲南部某种语言的一个词语,Ubuntu每6个......
  • Linux编辑技巧
    https://blog.csdn.net/tujidi1csd/article/details/124171196全文替换:%s/源字符串/目的字符串/g一个一个选择替换:%s/源字符串/目的字符串/gc......
  • 2023-03-13 递归详解
    1.递归基础和递归的宏观语意本质上,将原来的问题,转化为更小的同一问题举例代码publicclassArrSum{privateintres=0;publicintsum(int[]arr){......