文章插图
本篇文章介绍一个解析、以及增删改查键值对格式配置文件的 bash shell 脚本 。
该 shell 脚本处理的基本配置格式信息是:key|value 。
在脚本中 , 把 key 称为 “键名” 。把 value 称为 “键值” 。
把整个 key|value 称为 “键值对” 。
把中间的 | 称为 “分隔符” 。
默认的分隔符是 | 。脚本里面提供了设置函数可以修改分隔符的值 , 以便自定义 。
基于这个配置格式 , 可以配置下面的一些信息 。
配置目录路径简写配置一个目录路径简写 , 通过一个、或几个字符 , 就可以快速 cd 到很深的目录底下 。
例如 , 在配置文件中有下面的信息:
am|frameworks/base/services/core/JAVA/com/Android/server/am/w|frameworks/base/wifi/java/android/net/wifi/
假设有一个 quickcd.sh 脚本可以解析这个配置信息 。在执行 quickcd.sh w 命令时 , 该脚本会基于 w 这个键名 , 获取到 frameworks/base/wifi/java/android/net/wifi/ 这个键值 。
然后脚本里面执行 cd frameworks/base/wifi/java/android/net/wifi/ 命令 , 进入到对应的目录下 。
这样就不需要输入多个字符 , 非常方便 。
后面的文章会介绍在不同目录之间快速来回 cd 的 quickcd.sh 脚本 。
同时 , 所解析的配置信息保存在配置文件里面 。
如果要新增、删除配置项 , 修改配置文件自身即可 , 不需要改动脚本代码 。
这样可以实现程序数据和程序代码的分离 , 方便复用 。
配置命令简写配置一个命令简写 , 通过一个、或几个字符 , 就可以执行相应的命令 。
例如 , 在配置文件中有如下的信息:
l|adb logcat -b all -v threadtimepng|adb shell "screencap /sdcard/screen.png"
这里配置了 Android 系统的 adb 命令 。类似的 , 假设有一个 quickadb.sh 脚本可以解析这个配置信息 。
执行 quickadb.sh l 命令 , 该脚本实际会执行 adb logcat -b all -v threadtime 命令 。
这样可以减少输入 , 快速执行内容比较长的命令 。
使用配置文件保存命令简写 , 可以动态添加、删除命令 , 跟脚本代码独立开来 。
后面的文章会介绍一个通过命令简写执行对应命令的 tinyshell.sh 脚本 。
使用场景总结总的来说 , 这里介绍的配置文件是基于键值对的形式 。
常见的使用场景是 , 提供比较简单的键名来获取比较复杂的键值 , 然后使用键值来进行一些操作 。
但是在实际输入的时候 , 只需要输入键名即可 , 可以简化输入 , 方便使用 。
当然 , 实际使用并不局限于这些场景 。
如果有其他基于键值对的需求 , 可以在对应的场景上使用 。
脚本使用方法这个解析配置文件的 shell 脚本是一个独立的脚本 , 可以在其他脚本里面通过 source 命令进行调用 。
假设脚本文件名为 parsecfg.sh , 调用该脚本的顺序步骤说明如下:
- source parsecfg.sh:在调用者的脚本中引入 parsecfg.sh 脚本的代码 , 以便后续调用 parsecfg.sh 脚本里面的函数 。这里需要通过 source 命令来调用 , 才能共享 parsecfg.sh 脚本里面的函数、全局变量值 。
- (可选的)set_info_ifs separatorset_info_ifs:这是 parsecfg.sh 脚本里面的函数 , 用于设置分隔符 。所给的第一个参数指定新的分隔符 。默认分隔符是 | 。如果需要解析的配置文件用的是其他分隔符 , 就需要先设置分隔符 , 再解析配置文件 。如果使用默认的分隔符 , 可以跳过这个步骤 。
- open_config_file filenameopen_config_file:这是 parsecfg.sh 脚本里面的函数 , 用于解析配置文件 。所给的第一个参数指定配置文件名 。
- (可选的)handle_config_option -l|-v|-i|-e|-a|-dhandle_config_option:这是 parsecfg.sh 脚本里面的函数 , 用于处理选项参数 。‘-l’ 选项打印配置文件本身的内容 。‘-v’ 选项以键值对的形式打印所有配置项的值 。‘-i’ 选项后面要跟着一个参数 , 查询该参数值在配置文件中的具体内容 。‘-e’ 选项使用 vim 打开配置文件 , 以便手动编辑 。‘-a’ 选项后面跟着一个参数 , 把指定的键值对添加到配置文件末尾 。‘-d’ 选项后面跟着一个参数 , 从配置文件中删除该参数所在的行 。如果没有需要处理的选项 , 可以跳过这个步骤 。
推荐阅读
- Mac新用户优秀软件推荐
- 解读普洱茶圣地,普洱茶文化的历史源流介绍
- 傲慢与偏见简介及作者介绍
- 小说蝴蝶梦的内容及作者介绍
- 各种茶类及功效,凤凰单枞茶叶作用及功效介绍
- 广东青茶介绍,广东乌龙
- 各种花茶的健康功效,各种花茶的保健功能介绍
- 白族三道茶介绍
- 关于女人茶文化的知识,茶艺知识介绍
- 代码封装技巧和原则