使用 source
和 cat << EOF
来实现 template.txt
模板文件变量的替换,你可以按照以下步骤操作:
- 创建
config.env
文件:包含变量定义。 - 创建
template.txt
文件:包含模板内容。 - 编写一个脚本:使用
source
导入变量,然后使用cat << EOF
和EOF
读取模板文件并替换变量。
下面是一个完整的示例:
config.env
plaintext# config.env
appIntranetIp=192.168.1.1
TEERAServer=tee.example.com
template.txt
plaintext# template.txt
#服务ip
HOST_IP: $appIntranetIp
#网关内部地址
BAIZE_GATEWAY_URI: http://gateway:32000
#内部nginx的https地址
BAIZE_NGINX_HTTPS_URI: https://beacon:32021/api
OPERATING_NODE_CODE: ''
TEE_RA_SERVER: $TEERAServer
TEE_MEMORY_RATE: 100.0
script.sh
bash#!/bin/bash
# 导入变量
source config.env
# 读取模板文件内容并替换变量
cat << EOF > final_config.txt
$(<template.txt)
EOF
# 打印输出文件内容
cat final_config.txt
解释
-
导入变量:使用
source config.env
命令将config.env
文件中的变量导入到当前 shell 环境中。 -
读取模板文件内容并替换变量:
cat << EOF > final_config.txt
:使用 here-document 语法将内容输出到final_config.txt
文件。$(<template.txt)
:使用命令替换将template.txt
文件的内容读取到 here-document 中。由于变量已经在环境中定义,它们会被自动替换。
-
打印输出文件内容:使用
cat final_config.txt
打印最终生成的配置文件内容。
这种方法利用了 shell 的 here-document 语法和命令替换功能,确保模板文件中的变量被正确替换。
标签:文件,EOF,cat,source,txt,config,变量 From: https://www.cnblogs.com/exmyth/p/18605888