envsubst 替换模版中的环境变量

最后更新于:2022-04-02 03:50:31

[TOC] ## 安装 一般系统都带有 `apt-get install gettext-base` ## 格式 `envsubst < 模版文件 > 输出文件` eg: `envsubst < test.txt > bak.txt` ## 使用 ### 简单demo ``` > export TEST="a string to test envsubst" > cat test.txt $TEST > envsubst < test.txt > bak.txt > cat bak.txt a string to test envsubst ``` ### 循环中使用 redis-cluster.tmpl ``` port ${PORT} protected-mode no cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 cluster-announce-ip 39.10X.XX.XX //自己服务器IP cluster-announce-port ${PORT} cluster-announce-bus-port 1${PORT} appendonly yes ``` 直接执行 ``` $ for port in `seq 7000 7005`; do \ mkdir -p ./${port}/conf \ && PORT=${port} envsubst < ./redis-cluster.tmpl > ./${port}/conf/redis.conf \ && mkdir -p ./${port}/data; \ done ``` 输出 ``` ├── 7000 │   ├── conf │   │   └── redis.conf │   └── data ├── 7001 │   ├── conf │   │   └── redis.conf │   └── data ├── 7002 │   ├── conf │   │   └── redis.conf │   └── data ├── 7003 │   ├── conf │   │   └── redis.conf │   └── data ├── 7004 │   ├── conf │   │   └── redis.conf │   └── data ├── 7005 │   ├── conf │   │   └── redis.conf │   └── data └── redis-cluster.tmpl ```
';