如果不存在,如何添加未命名的uci节?

时间:2019-08-10 06:18:58

标签: openwrt

我想通过uci配置ipsec(总是ipsec [0])。如果ipsec部分存在,则一切正常。我可以使用uci ipsec。@ ipsec [0] .type ='tunnel'修改ipsec。但是,如果ipsec节不存在,则此命令不起作用。如果不存在,我想添加ipsec部分。

2 个答案:

答案 0 :(得分:0)

我发现的唯一方法是使用bach: 如果[“ $(uci show ipsec)” ==“”];然后uci添加ipsec ipsec; fi;

答案 1 :(得分:0)

uci show ipsec还将显示除ipsec [0]以外的配置,因此条件将为false,最终您将添加ipsec [0] ipsec [1]的多个配置 您可以通过以下方式进行操作。

config ipsec
     option type 'tunnel'

type_present=`uci -q get ipsec.@ipsec[0]`
if [ "$type_present" = ""]; then
      uci add ipsec ipsec
      uci commit ipsec
fi

如果只有一个配置ipsec,则可以将该配置部分命名为

config ipsec 'my_ipsec' # my_ipsec is named config

您可以更好地访问它

uci get ipsec.my_ipsec.type

使用-q->完全模式,如果找不到条目并返回空白字符串,则不会通过错误显示。