TPP*_*PPZ 7 shell shell-script openwrt
我正在配置运行 OpenWRT 的路由器,但我很难理解如何使用命令uci(统一配置界面)来检查现有的配置文件。我想在 shell 脚本中自动执行此配置。
以防火墙配置为例,其/etc/config/firewall长度为 195,因此使用cat.
有多种规则,采用第一个:
root@OpenWrt:/etc/config# grep -B1 -A6 'Allow-DHCP-Renew' /etc/config/firewall
config rule
option name Allow-DHCP-Renew
option src wan
option proto udp
option dest_port 68
option target ACCEPT
option family ipv4
root@OpenWrt:/etc/config#
Run Code Online (Sandbox Code Playgroud)
我可以检查第一条规则 ( ) 的各个字段,@rule[0]例如该字段name:
root@OpenWrt:/etc/config# uci get firewall.@rule[0].name
Allow-DHCP-Renew
root@OpenWrt:/etc/config#
Run Code Online (Sandbox Code Playgroud)
但我看不到整个规则作为输出,我已经尝试过,uci get firewall.@rule[0].*但这不是正确的语法。
没有uci( man uci) 的手册,因此我不确定在哪里可以找到有关如何使用该命令的信息。
这种“集体获得”到底有可能吗?
嗯...刚刚发现我需要使用uci show而不是uci get,请参阅下面的示例:
root@OpenWrt:/etc/config# uci show firewall.@rule[0]
firewall.cfg0592bd=rule
firewall.cfg0592bd.name='Allow-DHCP-Renew'
firewall.cfg0592bd.src='wan'
firewall.cfg0592bd.proto='udp'
firewall.cfg0592bd.dest_port='68'
firewall.cfg0592bd.target='ACCEPT'
firewall.cfg0592bd.family='ipv4'
root@OpenWrt:/etc/config#
Run Code Online (Sandbox Code Playgroud)