在网上查了发现关于这一方面的都没有详细的说明,搞得人一头雾水,如果不清楚里面是如何实现的,那么这些openwrt下shell脚本根本就看不下去了。没有详细的资料,唯有自己研究了。
Shell脚本中获取文件信息主要依靠于以下几个shell函数:config_load,config_get,config_set.
以解读配置文件/etc/config/wireless为例
/etc/config/wireless内容:
config wifi-device 'wifi0'
option type 'qcawifi'
option channel 'auto'
option txpower 'auto'
option bcnburst '1'
option hwmode '11ng'
option disabled '0'
option country 'US'
.........
执行以下命令:/sbin/wifi reload
/sbin/wifi:
......
DEVICES=
DRIVERS=
include /lib/wifi
scan_wifi
case "$1" in
down) wifi_updown "disable" "$2";;
detect) wifi_detect "$2";;
status) ubus_wifi_cmd "status" "$2";;
reload) wifi_reload "$2";;
reload_legacy) wifi_reload_legacy "$2";;
flush) flush_wifi "$2" "$3" "$4";;
update) update_wifi "$2" "$3" "$4";