Bash技巧:介绍一个可以增删改查键值对格式配置文件的Shell脚本


Bash技巧:介绍一个可以增删改查键值对格式配置文件的Shell脚本

文章插图

本篇文章介绍一个解析、以及增删改查键值对格式配置文件的 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 , 调用该脚本的顺序步骤说明如下: