LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1040|回复: 11

请求此脚本编写方法,急!

[复制链接]
发表于 2005-8-3 15:30:59 | 显示全部楼层 |阅读模式
比如,我在./目录下有个.conf文件,文件里有个地方是设置本机IP的,比如里面有一条是IP=192.168.0.44,而我要写个脚本直接改写这一条IP地址,请问我该如何做?
有点急,麻烦各位了,谢谢!
 楼主| 发表于 2005-8-3 15:32:21 | 显示全部楼层
设置这个IP的时候,是直接执行该脚本,在文本模式下输入IP地址,之后按回车来完成操作
回复 支持 反对

使用道具 举报

发表于 2005-8-3 16:15:27 | 显示全部楼层
  1. #!/bin/sh

  2. echo -n  "Enter new IP address: "
  3. read IP

  4. sed -i "s/PATTERN/$IP/g" file  ## 其中PATTERN是ip地址的正则表达式,具体搜索一下shell版,file就是你要编辑的的配置文件。


复制代码
回复 支持 反对

使用道具 举报

发表于 2005-8-3 16:19:16 | 显示全部楼层
用sed命令,看看这个:
sed "/IP=/ c\IP=192.168.0.188" ./.config
输出是什么?
知道怎么做了吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-3 16:21:21 | 显示全部楼层
$ip |awk -F '.' '{ if ( ($1 >256 || $1 <0) || ($2 >256 || $2 < 0) || ($3 > 256 || $3 < 0) || ($
4 >256 || $4 < 0 )) print $0 ,"is incorrect"}'正则表达式,但是我不知道它怎么去修改具体地几行
假如我的IP地址是该配置文件的第二行,那该如何插入呢?
回复 支持 反对

使用道具 举报

发表于 2005-8-3 16:30:52 | 显示全部楼层
Post by jsz
$ip |awk -F '.' '{ if ( ($1 >256 || $1 <0) || ($2 >256 || $2 < 0) || ($3 > 256 || $3 < 0) || ($
4 >256 || $4 < 0 )) print $0 ,"is incorrect"}'正则表达式,但是我不知道它怎么去修改具体地几行
假如我的IP地址是该配置文件的第二行,那该如何插入呢?


sed "/IP=/ c\IP=192.168.0.188" ./.config
这个命令不管IP在那一行,他自己会匹配的。
你建个简单的文件,把IP项放在后面几行,试试这个命令就知道了!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-3 16:47:20 | 显示全部楼层
比如文件123.conf是这样的:
[ftpserver]
[IP=61.172.249.102]
[port=21]
[user=1234]
[password=1234]
[/ftpserver]

那我修改其IP是不是应该这样写呢:
#!/bin/sh

echo -n  "Enter new IP address: "
read IP

echo $ip |awk -F '.' '{ if ( ($1 >256 || $1 <0) || ($2 >256 || $2 < 0) || ($3 > 256 || $3 < 0) || ($
4 >256 || $4 < 0 )) print $0 ,"is incorrect"}'

sed "/IP=/ c\IP=$ip" ./123.conf

对吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-4 10:05:16 | 显示全部楼层
我现在要加如一段判断IP的代码,检查输入的IP是否是有效的IP地址?
再怎么加?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-4 10:49:27 | 显示全部楼层
继续顶一下
回复 支持 反对

使用道具 举报

零二年的夏天 该用户已被删除
发表于 2005-8-4 11:05:39 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表