问题描述
最近在项目开发中遇到一个问题,在脚本中使用以下指令修改wifi ssid,然后通过uci自带接口config_get读取ssid,发现得到结果是修改之前的值。
uci set wireless.wifi24g.ssid="wifi-24g-test"
uci commit wireless
问题分析
首先,使用以下指令读取发现获取的ssid是修改后的值
uci get wireless.wifi24g.ssid
wifi-24g-test
然后,使用config_get获取发现获取值不对
uci /lib/function.sh函数
可以看到config_get是从当前设置的环境变量中获取配置值,config_load是从配置文件读取配置,并设置到环境变量中。所以,如果使用uci set修改了配置,然后用config_get读取的时候,在这之前需要先使用config_load重新读取配置文件到环境变量,至此问题分析清楚