先上脚本,脚本的目的是虚拟机克隆-连接克隆,然后修改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和变量的关键词搜索的结果,众多都写上替换单引号为双引号。

最新文章

  1. GDB调试汇编分析
  2. 关于MyCAT字符集的验证
  3. python可分组字典
  4. mysql数据库添加索引优化查询效率
  5. struts2基础篇(1)
  6. Linux unzip解压文件到某个目录下面
  7. 【转】maven仓库快速镜像
  8. mongodb数据结构学习1--增删改查
  9. Javascript之spry菜单栏
  10. 198. House Robber
  11. android82 文件下载框架xUtils
  12. 【转】vc中使用SendMessage正确发送自定义消息的方法--不错
  13. 基于Visual C++2013拆解世界五百强面试题--题15-递归相加
  14. HDU 2070 Fibbonacci Number
  15. 40w会议投票系统优化方案
  16. listview的gridview视图中,获取列中模板内的button按钮(找控件内的控件)
  17. 016、Dockerfile 常用命令(2019-01-07 周一)
  18. 简述Ajax原理及实现步骤
  19. invariant theory 不变量理论
  20. JustOj 2043: N!

热门文章

  1. Hadoop2.9.1安装教程_环境Ubuntu_VMware安装
  2. How-to-quick-getting-started-for-Frontend
  3. 重启rsyslog服务时出现问题(误删/var/log/messages解决方案)
  4. jquery-常用插件集合
  5. UNIX环境高级编程(6):文件I/O(2)
  6. apk去广告工具(利用apktool去除apk文件里的广告)
  7. FreeRTOS系列第13篇---FreeRTOS内核控制
  8. dom 编程(html和xml)
  9. 杭电3501Calculation 2 欧拉函数
  10. python部分