sed命令中传递变量

例如:修改配置文件某一个变量的值

配置文件如下:

toney@ubantu:/mnt/hgfs/em嵌入式学习记录/shell/shell脚本常见用法$ cat common_usage.log
PRODUCT_TYPE=NGFW_V2_3
PLATFORM=x86_64
NGTOS_VERSION=v2.2.94
NGFW_PATCH_VERSION=v2.2.94
DLP_PKT_VERSION=
VERSION=NGFW_V2_3_2020-04-20
SOURCE_TAG=trunk
REVISION= --------->尝试修改此属性的值
IS_TAG=false
OEM=TOPSEC
AUTOMAKE_USER_NAME=chen_kang
SPECIAL_UPDATE=no
SPECIAL_SOURCE_BRANCH=
SPECIAL_SOURCELIST_FILE=
HAVE_ROOT=true
IS_SM=false
HAVE_ASAN=false
ONLY_HAVE_ASAN=false
IS_BIG_PRODUCE=no
IS_VERSION_INS=no
MIN_REVISION=$version
MAX_REVISION=$version
IS_REBUILD=no
IS_KERNEL_BUILD=no
DAILY_CONFIG_UPDATE=NO

脚本函数如下:

modifyConfig(){
FILE="common_usage.log"
version="linux-4.1.23"
#正常的做法
#以”REVISION=“开始的行全部替换为”REVISION=$version“
sed -i 's/REVISION=.*$/REVISION=$version/' $FILE
}

结果真的是替换为“REVISION=$version”…

可行的办法如下:

只需要将单引号改为双引号

#########################################################################
# File Name: common_usages.sh
# Author: Toney Sun
# mail: vip_13031075266@163.com
# Created Time: 2020年04月20日 星期一 15时03分23秒
#########################################################################
#!/bin/bash modifyConfig(){
FILE="common_usage.log"
version="linux-4.1.23"
#正常的做法-->不可行
#以”REVISION=“开始的行全部替换为”REVISION=$version“
#sed -i 's/REVISION=.*$/REVISION=$version/' $FILE #可行办法
sed -i “s/REVISION=.*$/REVISION=$version/” $FILE
}
modifyConfig

结果如下:

PRODUCT_TYPE=NGFW_V2_3
PLATFORM=x86_64
NGTOS_VERSION=v2.2.94
NGFW_PATCH_VERSION=v2.2.94
DLP_PKT_VERSION=
VERSION=NGFW_V2_3_2020-04-20
SOURCE_TAG=trunk
REVISION=linux-4.1.23 -------------------------->Here
IS_TAG=false
OEM=TOPSEC
AUTOMAKE_USER_NAME=chen_kang
SPECIAL_UPDATE=no
SPECIAL_SOURCE_BRANCH=
SPECIAL_SOURCELIST_FILE=
HAVE_ROOT=true
IS_SM=false
HAVE_ASAN=false
ONLY_HAVE_ASAN=false
IS_BIG_PRODUCE=no
IS_VERSION_INS=no
MIN_REVISION=linux-4.1.23
MAX_REVISION=linux-4.1.23
IS_REBUILD=no
IS_KERNEL_BUILD=no

最新文章

  1. C# - 多线程 之 信号系统
  2. JS原型的问题Object和Function到底是什么关系
  3. display转块状化
  4. bootstrap入门-3.响应式原理
  5. <a href="javascript:void(0)" onclick="ff()" ></a> 用法解析
  6. [转]O(n)回文子串算法 Manacher算法
  7. DOM对象和JQuery对象的区别
  8. MAC机常用快捷键整理表格
  9. The Swift Programming Language--语言指南--协议
  10. 老李分享: Oracle Performance Tuning Overview 翻译下
  11. C#版 - Leetcode 414. Third Maximum Number题解
  12. 六.ansible批量管理服务
  13. spring 5.1.2 mvc RequestMappingHandlerMapping 源码初始化过程
  14. HDU 6049 17多校2 Sdjpx Is Happy(思维题difficult)
  15. Reactor/Proactor的比较 (ZZ)
  16. pytest.2.运行多个文件
  17. cocos2d-js 3.0 rc2 自定义UI控件组件 例子:能播放动画的MenuItem。MenuItemSprite的bug
  18. rsyncd.conf
  19. Windows服务器PHPstudy配置安装微擎教程
  20. js获取当前项目根路径URL (转自CSDN 红领巾-sunlight)

热门文章

  1. anyRTC iOS端屏幕录制开发指南
  2. 题解CF757B
  3. RHCSA_DAY07
  4. 一周内被程序员疯转3.2W次,最终被大厂封杀的《字节跳动Android面试手册》!
  5. 多线程案例:龟兔赛跑-Race
  6. 连通图与Tarjan算法
  7. 深度学习框架如何自动选择最快的算法?Fast Run 让你收获最好的性能!
  8. Liunx搭建Rlogin服务
  9. 题解—God Knows
  10. 软件研发中也有5S 管理?