如何在shell脚本中修改添加替换指定文件中的内容
我有时候要经常修改网络配置我想写一个脚本自动修改把DHCP修改成手动网络这里是手动配置DEVICE=eth1TYPE=EthernetUUID=c1ad2174-860b...
我有时候要经常修改网络配置我想写一个脚本自动修改
把DHCP修改成手动网络
这里是手动配置
DEVICE=eth1
TYPE=Ethernet
UUID=c1ad2174-860b-464d-beba-1433b1988cdb
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=08:00:27:2A:32:90
IPADDR=10.0.0.10
PREFIX=24
GATEWAY=10.0.0.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
这里是自动配置
DEVICE=eth1
TYPE=Ethernet
UUID=c1ad2174-860b-464d-beba-1433b1988cdb
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
HWADDR=08:00:27:2A:32:90
PEERDNS=yes
PEERROUTES=yes
LAST_CONNECT=1419610509
系统默认是dhcp 请问一下这个脚本改如何写呢, 展开
把DHCP修改成手动网络
这里是手动配置
DEVICE=eth1
TYPE=Ethernet
UUID=c1ad2174-860b-464d-beba-1433b1988cdb
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=08:00:27:2A:32:90
IPADDR=10.0.0.10
PREFIX=24
GATEWAY=10.0.0.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
这里是自动配置
DEVICE=eth1
TYPE=Ethernet
UUID=c1ad2174-860b-464d-beba-1433b1988cdb
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
HWADDR=08:00:27:2A:32:90
PEERDNS=yes
PEERROUTES=yes
LAST_CONNECT=1419610509
系统默认是dhcp 请问一下这个脚本改如何写呢, 展开
4个回答
展开全部
1、可以借助于shell命令执行另一个脚本文件或者用变量保存。比如a.sh和b.sh,a.sh中调用b.sh的代码,一起输出"hello world"的字符串。b.sh的代码如下echo " world!"。
2、a.sh可以借助"."来执行b.sh脚本,b.sh执行结果可以保存在变量中,也可直接输出,a.sh中的内容如下:echo "可以用.命令来执行脚本文件"echo "hello `./b.sh`"var=`./b.sh`echo"hello $var";。
3、a.sh也可以借助source命令执行b.sh脚本,b.sh执行结果可以保存在变量中,也可直接输出。a.sh中的内容如下:echo "用source命令执行脚本文件"echo "hello `source ./b.sh`"var=`source ./b.sh`echo "hello $var"。
4、a.sh中也可以借助于bash、sh等命令来执行b.sh脚本,b.sh的执行结果可以保存在变量中,也可以直接输出。a.sh中的内容如下。
5、另外,也可以使用$(),将b.sh的执行结果的内容保存到变量中,就完成了。
2、a.sh可以借助"."来执行b.sh脚本,b.sh执行结果可以保存在变量中,也可直接输出,a.sh中的内容如下:echo "可以用.命令来执行脚本文件"echo "hello `./b.sh`"var=`./b.sh`echo"hello $var";。
3、a.sh也可以借助source命令执行b.sh脚本,b.sh执行结果可以保存在变量中,也可直接输出。a.sh中的内容如下:echo "用source命令执行脚本文件"echo "hello `source ./b.sh`"var=`source ./b.sh`echo "hello $var"。
4、a.sh中也可以借助于bash、sh等命令来执行b.sh脚本,b.sh的执行结果可以保存在变量中,也可以直接输出。a.sh中的内容如下。
5、另外,也可以使用$(),将b.sh的执行结果的内容保存到变量中,就完成了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用sed 替换
比如替换‘BOOTPROTO=none' 这一行可以用这个命令:
sed -i -e 's|BOOTPROTO=none|BOOTPROTO=dhcp|' conf.txt
其他行同理
比如替换‘BOOTPROTO=none' 这一行可以用这个命令:
sed -i -e 's|BOOTPROTO=none|BOOTPROTO=dhcp|' conf.txt
其他行同理
追问
我试试!可以的话立马采用 其中的-i -e 和s是什么意思呢
追答
-i 是直接修改文件文件名可以放到命令最后
-e ’s|aaa|bbb|' 把aaa替换成bbb
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用phrozenflame的回答:
用sed 替换
比如替换‘BOOTPROTO=none' 这一行可以用这个命令:
sed -i -e 's|BOOTPROTO=none|BOOTPROTO=dhcp|' conf.txt
其他行同理
用sed 替换
比如替换‘BOOTPROTO=none' 这一行可以用这个命令:
sed -i -e 's|BOOTPROTO=none|BOOTPROTO=dhcp|' conf.txt
其他行同理
展开全部
-e 是多命令编辑参数,当你想用一条sed命令对一个文件内容进行多种操作时使用的,比如sed -i -e 's|BOOTPROTO=none|BOOTPROTO=dhcp|' -e 's|username=none|username=dhcp|' conf.txt
此处不加-e选项也是可以的。因为只有一个替换操作指令。s是替换的意思,和vi里的编译命令s/old/new/g很像。
此处不加-e选项也是可以的。因为只有一个替换操作指令。s是替换的意思,和vi里的编译命令s/old/new/g很像。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询