zoukankan      html  css  js  c++  java
  • sed 替换 引用变量值,记录一个自己学习错误的地方。

    先上脚本,脚本的目的是虚拟机克隆-连接克隆,然后修改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和变量的关键词搜索的结果,众多都写上替换单引号为双引号。
  • 相关阅读:
    Python——PYQT:控件基本使用
    Python——GUI编程 利息计算器 作业9(python programming)
    Python——GUI编程(python programming)
    weblogic 8.1教程之部署(三)
    iOS CocoaPods安装和使用图解
    黑马day11 事务的四大特性
    实现按条件查询
    hdu 1078 FatMouse and Cheese【dp】
    Android-风格和主题
    Oracle PGA
  • 原文地址:https://www.cnblogs.com/fyc119/p/7521366.html
Copyright © 2011-2022 走看看