架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 7921|回复: 1

[linux] 一个修改配置文件的linux shell scrip{过滤}t

[复制链接]
发表于 2017-3-19 22:35:19 | 显示全部楼层 |阅读模式
现在,需要通过web界面给用户留出接口来修改类似配置文件,大的方法是从PHP调用Linux shell scrip{过滤}t,于是,现在贴一个可以修改此种配置文件的linux shell。

首先,配置文件的格式如下:
例子如下,config.ini:

配置文件中包含3个unit,表示3个大的方面:数据库,业务,离线;每个unit有属于自己的字段名及字段值。


上文中引用博客正是能读取这样的配置文件,而目前我们便是要通过linux shell来修改这个配置文件。

我们设计的程序名为 modify_config_file,使用 ./modify_config_file unit1-field1=changed_value1 unit2-field1=changed_value2 这样的格式(参数可以继续添加)来进行修改。

要做到修改配置文件的功能其实并不难,20-30行便可以解决问题。但是基于“一切输入都是有害的”的原则,需要在shell中加入各种容错处理,如果用户参数输入错误,要能及时提醒用户,定位问题所在,下面是基于这样一个初衷的shell,当然,名称为modify_config_file:


用户通过以下命令修改配置:

输出如下:

其中,第一行表示找到BUSINESS这个unit所在的行号区间,注意是开区间;第二行表示所有匹配到field行号,因为可能多个unit中有相同的field;第三行表示最终落入unit区间的field行号;第四行表示所在行修改后的结果。

另外,用户输入不符合格式是很有可能,针对以下几种错误都会报告并且定位:


如果要应用到其它的配置文件,需要在脚本中修改配置文件所在路径与文件名:







上一篇:.sh文件执行错误:-bash: xxx: /bin/sh^M: bad interpreter: No such file or direc...
下一篇:shell修改等号分隔的参数值
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-24 17:30

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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