先上脚本,脚本的目的是虚拟机克隆-连接克隆,然后修改ip这个搞定,修改hostname就很简单了

declare oldip
declare -i Aname
declare newip
oldip=`cat /etc/sysconfig/network-scripts/ifcfg-ens32 | grep IPADDR= | cut -b 8-22`
read -p "请输入用户IP:" Aname
newip="192.168.1.$Aname"
echo "用户旧ip为:$oldip"
echo "用户新ip为:$newip"
sed -i 's/IPADDR='"$oldip"'/IPADDR='"$newip"'/g' /etc/sysconfig/network-scripts/ifcfg-ens32
cat /etc/sysconfig/network-scripts/ifcfg-ens32 | grep IPADDR

执行结果如下:

[root@fyc001 ~]# ./ipset.sh
请输入用户IP:19
用户旧ip为:192.168.1.18
用户新ip为:192.168.1.19
IPADDR=192.168.1.19

现在换为

sed -i "s/IPADDR=$oldip/IPADDR=$newip/g" /etc/sysconfig/network-scripts/ifcfg-ens32

执行结果不变,而原先的是

sed -i 's/IPADDR=$oldip/IPADDR=$newip/g' /etc/sysconfig/network-scripts/ifcfg-ens32

无法执行。

总结如下,参考资料

 1、sed命令使用双引号的情况下,可以使用$var(变量)直接引用:
  echo | sed "s/$RANDOM1/ $RANDOM2  /g" 

2、sed命令使用单引号的情况下,可以使用'"$var"'引用(单引号,然后双引号,变量):

  echo | sed 's/'"$RANDOM1"'/'" $RANDOM2 "' /g'

sed中执行外部命令。
  1、sed命令使用单引号的情况下使用'`shell command`'或者'$(shell command)'引用命令执行的结果:
  echo | sed 's/^/'`echo $RANDOM`'.rmvb_/g'
  7700.rmvb_# 结果
  # 上面的命令使用了旧式的命令替换,也可以采用新式的命令替换方法,如下:
  echo | sed 's/^/'$(echo $RANDOM)'.rmvb_/g'
  13856.rmvb_# 结果
  # 下面例子取用当前日期作为结果的一部分,如下:
  echo | sed 's/^/'$(date +"%Y%m%d")'.rmvb_/g'
  20130401.rmvb_ # 结果
  2、sed命令中使用双引号的情况下,直接`shell command`或者$(shell command)引用命令执行。
  echo | sed "s/^/$(date +"%Y%m%d").rmvb_/g"
  20130401.rmvb_# 结果
  # 使用环境变量$RANDOM以及旧式命令替换的例子:
  echo | sed "s/^/`echo $RANDOM`.rmvb_/g"
  29484.rmvb_# 结果
  总结一下
  在sed语句里面,变量替换或者执行shell命令,双引号比单引号少绕一些弯子;所以,sed和变量的关键词搜索的结果,众多都写上替换单引号为双引号。

sed 替换 引用变量值,记录一个自己学习错误的地方。的更多相关文章

  1. saltstack通过jinja模板,将变量值增加到配置文件中?通过引用变量值修改配置文件?

    需求描述: 在使用saltstack的时候,有的时候,需要根据不同的变量来增加配置,比如,bind,监听端口,这些都可以通过变量写入,并且在配置的时候引用,下面是一个例子,用来演示,如何使用jinja ...

  2. sed 替换多个空格为一个

    sed -i 's/[ ][ ]*/ /g'  file.txt

  3. jmeter后置处理器 JSON Extractor取多个变量值

    1.需要获取响应数据的请求右键添加-后置处理器-JSON Extractor 2.如果要获取json响应数据多个值时,设置的Variable names (后续引用变量值的变量名设置)与JSON Pa ...

  4. 记录一个bootstrap惨痛的错误

    记录一个bootstrap的错误,这个错误因为我删除了一个class就导致了页面上显示的错误,这是一个惨痛的教训,特此记录,提醒自己在做前端的修改时,一定要慎之又慎.如果真的要做改动,改完之后也要测一 ...

  5. MFC一个类访问另一个类成员对象的成员变量值

    MFC中一个类要访问另外一个类的的对象的成员变量值,这就需要获得原来那个类对象的指针,其实有好几种方法都可以实现. 比如维护一个单例模式.设置静态变量等等.我们这里举个列子,实现多个类之间的相互访问. ...

  6. MFC 一个类訪问还有一个类成员对象的成员变量值

    作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/35263857 MFC中一个类要訪问另外一个类的的对象的成员变量值,这就须要获得 ...

  7. 用配置文件里面的参数值替换yaml模板中的变量值【python】

    用配置文件里面的参数值替换yaml模板中的变量值[python] #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/9/20 1 ...

  8. memcpy造成其他变量值改变

        以前C/C++遇到过很多很多的问题,有时候费了很久很久时间,很大很大的努力才解决.但是都没有记录下来,现在想想以前的遇到的问题,只知道这样的事情发生过,至于是什么问题,一点印象都没有了.所以遇 ...

  9. ORACLE获取SQL绑定变量值的方法总结

      本文总结一下ORACLE数据库中如何获取SQL绑定变量值的方法,在SQL优化调优过程中,经常会用到这方面的知识点.在此梳理.总结一下,方面日后查找.翻阅. 方法1:查询V$SQL V$SQL视图中 ...

随机推荐

  1. 广义线性模型------逻辑回归和softmax回归

    1.广义线性模型 2.逻辑回归 3.softmax回归

  2. php获取时间是星期几

    PHP星期几获取代码: date("l"); //data就可以获取英文的星期比如Sundaydate("w"); //这个可以获取数字星期比如123,注意0是 ...

  3. java缓冲区BufferedReader

    1.java缓冲区BufferedReader拷贝文件 2.代码如下: package Demo1; import java.io.*; public class BufferedTest { pub ...

  4. RabbitMQ学习总结(2)——安装、配置与监控

    一.安装 1.安装Erlang 1)系统编译环境(这里采用linux/unix 环境) ① 安装环境 虚拟机:VMware® Workstation 10.0.1 build Linux系统:Cent ...

  5. 2015 Multi-University Training Contest 5 hdu 5349 MZL's simple problem

    MZL's simple problem Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Oth ...

  6. Xdoclet + Ant自己主动生成Hibernate配置文件

    在使用Hibernate的时候,过多的Hibernate配置文件是一个让人头疼的问题. 近期接触了Xdoclet这个工具. 它实际上就是一个自己主动代码生成的工具.Xdoclet不能单独执行,必须搭配 ...

  7. Android Touch事件传递机制全面解析(从WMS到View树)

    转眼间近一年没更新博客了,工作一忙起来.非常难有时间来写博客了,因为如今也在从事Android开发相关的工作,因此以后的博文也会很多其它地专注于这一块. 这篇文章准备从源代码层面为大家带来Touch事 ...

  8. 第二次phython作业

    第一题:编写程序,生成一个包含50个随机整数的列表,然后删除其中所有奇数.(注意保证删除操作的效率) import random x=[random.randint(0,100)for i in ra ...

  9. Spark技术在京东智能供应链预测的应用——按照业务进行划分,然后利用scikit learn进行单机训练并预测

    3.3 Spark在预测核心层的应用 我们使用Spark SQL和Spark RDD相结合的方式来编写程序,对于一般的数据处理,我们使用Spark的方式与其他无异,但是对于模型训练.预测这些需要调用算 ...

  10. mysql导入数据,涉及到时间转换,乱码问题解决

    表结构: drop table if exists `qi_an_log`;CREATE TABLE `qian_log` (`dt` LONG NOT NULL COMMENT '产生日期,格式yy ...