Shell-Script
如何在 OpenWRT 中使用 uci 命令獲取所有配置選項
我正在配置一個執行 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#
我可以檢查第一條規則 (
@rule[0]
) 的各個欄位,例如name
具有以下內容的欄位:root@OpenWrt:/etc/config# uci get firewall.@rule[0].name Allow-DHCP-Renew root@OpenWrt:/etc/config#
但是我無法將整個規則視為輸出,我已經嘗試過,
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#