我想通过uci配置ipsec(总是ipsec [0])。如果ipsec部分存在,则一切正常。我可以使用uci ipsec。@ ipsec [0] .type ='tunnel'修改ipsec。但是,如果ipsec节不存在,则此命令不起作用。如果不存在,我想添加ipsec部分。
答案 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->完全模式,如果找不到条目并返回空白字符串,则不会通过错误显示。