1.从一串字符串中获取特定的信息
要求1:获取本机IP:menu.lst为系统镜象的IP配置文件,需要从中获取到本机IP信息(从文件获取信息)
1 timeout 1menu.lst
2 default 0
3
4 title live
5 find --set-root /casper/vmlinuz
6 kernel /casper/vmlinuz boot=casper ignore_uuid showmounts ip=eth0,10.0.66.66,255.255.240.0,10.0.64.3
7 initrd /casper/initrd.lz
要求2:修改(替换)原文件中特定内容:CenterServer.conf为SCC可执行程序的配置文件,需要将配置文件中的domain值改为本机IP。
1 #CenterServer config fileCenterServer.conf
2
3 # Logging Type: syslog|cerr|cout|file
4 LoggingType = cout
5
6 # Logging level: NONE|CRIT|ERR|WARNING|INFO|DEBUG|STACK
7 LogLevel = DEBUG
8 #LogLevel = INFO
9
10 #sip listen port
11 UDPPort = 5060
12 #SCC domain ip
13 Domain = 10.0.73.14
14 CallTimeout = 60
15
16 #RDS client working thread num (1--8)
17 RDSClientThreadNum = 2
18 #RDS Client Log on|off
19 RDSClientLog = off
20
21 #Daemon process yes|no, default=yes
22 IsDaemon = no
23
24 #Web server addr
25 WebServerUrl = http://localhost:9000
26
27 #SCC state Database
28 DataBase = scc
29 MySqlUserName = root
30 MySqlUserPasswd =jonet@666
31
32 MsIp = 127.0.0.1
33 MsPort = 9999
实现脚本:
1 #!/bin/shconf.sh
2 MENULST="/JONET_boot/menu.lst"
3 SCC_PATH="/JONET/bin/SCC/CenterServer.config"
4 LOCALIP="`awk -F ',' '{print $2}' $MENULST |grep .`";
5 echo $LOCALIP
6
7 modify_scc()
8 {
9 DOMAIN="`cat $SCC_PATH|grep Domain`"
10 echo $DOMAIN
11 echo $LOCALIP
12 #sed -e 's/Domain = 10.0.66.66/Domain = 10.0.73.15/g' $SCC_PATH
13 sed -i 's/'"${DOMAIN}"'/Domain = '"${LOCALIP}"'/g' $SCC_PATH
14 }
15
16
17 modify_conf()
18 {
19 modify_scc
20 }
21
22 modify_conf
23
24 exit 0
说明:sed -i 's/'"${DOMAIN}"'/Domain = '"${LOCALIP}"'/g' $SCC_PATH
由于宏定义DOMAIN和LOCALIP在命令中使用$DOMAIN和$LOCALIP无法使用,需要使用'"${DOMAIN}"'和'"${LOCALIP}"',使执行脚本时能够替换
1 #!/bin/shconf.sh
2 MENULST="/JONET_boot/menu.lst"
3 SCC_PATH="/JONET/bin/SCC/CenterServer.config"
4 LOCALIP="`awk -F ',' '{print $2}' $MENULST |grep .`";
5 echo $LOCALIP
6
7 modify_scc()
8 {
9 DOMAIN="`cat $SCC_PATH|grep Domain`"
10 echo $DOMAIN
11 echo $LOCALIP
12 sed -i 's/'"${DOMAIN}"'/Domain = '"${LOCALIP}"'/g' $SCC_PATH
13 }
14
15 modify_conf()
16 {
17 modify_scc
18 }
19
20 modify_conf
21
22 exit 0