博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell定义带变量的模板,直接修改变量,用这种方法再也不用担心正则匹配不准的问题了...
阅读量:7222 次
发布时间:2019-06-29

本文共 727 字,大约阅读时间需要 2 分钟。

之前用shell 写脚本,有时候不光要定义一个 配置文件,很多时候还要有个模板,不同的环境直接替换相同的模板内容来用;然而,在这之前,一直都是用的 sed 、 awk 、grep 之类的。忽然有一天有个 yaml 文件,里面要替换的太多,sed 太麻烦,用这种方法,不知道要少写多少正则。。。

淡不多扯,我给大家伙上一个例子:

创建一个模板,在模板内直接写变量

vim a.model#This is app config modelapp_name=$nameapp_ip=$ip

shell 脚本直接替换变量

vim b.sh#!/bin/bashname="bill_server"ip="192.168.3.22"all_variables="name=$name ip=$ip"cp -a a.model rfile.confresourcefile=`cat rfile.conf`printf "$all_variables\ncat << EOF\n$resourcefile\nEOF" | bash > rfile.conf

运行脚本后,查看生成的配置文件:

cat rfile.conf#This is app config modelapp_name=bill_serverapp_ip=192.168.3.22

是不是很方便?如果有很多环境用一样的配置文件,用这个方法做配置文件,是不是很方便,只要把shell中的变量换成从外边传参,复制的文件也饿改成变量,就可以一下生成很多相同格式内容不同的文件了。如果这个配置文件足够长,那么省了多少正则呢?

转载于:https://blog.51cto.com/rsddn/2085892

你可能感兴趣的文章
Linux常用命令
查看>>
PHP基础知识(二)
查看>>
android之VideoView和视频播放View的扩展
查看>>
stdout stdin stderr
查看>>
FreeMarker 一二事 - 静态模板结合spring展示
查看>>
07:企业级镜像仓库Harbor
查看>>
bzoj4427【Nwerc2015】Cleaning Pipes清理管道
查看>>
事务隔离级别
查看>>
Python 函数
查看>>
Linux64位程序中的漏洞利用
查看>>
gdb教程
查看>>
动态的加载类型
查看>>
36.scrapy框架采集全球玻璃网数据
查看>>
python matplotlib
查看>>
心灵指南 刘墉 第三辑 肯定自己 笔记
查看>>
centos7 tomcat nginx 动静分离显示权限不足
查看>>
弹珠游戏
查看>>
一切的原点
查看>>
OC内存管理
查看>>
洛谷P1801 黑匣子
查看>>