首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果不存在如何添加未命名的uci部分?

如果不存在如何添加未命名的uci部分?
EN

Stack Overflow用户
提问于 2019-08-10 14:18:59
回答 2查看 458关注 0票数 1

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-10 16:16:36

我找到的唯一方法是使用shell脚本

代码语言:javascript
运行
复制
if ! uci -q show ipsec.@ipsec[0]
then
    uci add ipsec ipsec
fi
票数 1
EN

Stack Overflow用户

发布于 2019-11-14 16:52:23

uci show ipsec将显示配置,而不是ipsec,因此条件将变得错误,您将以添加多个ipsec ipsec1配置结束,您可以通过以下方式完成此操作。

代码语言:javascript
运行
复制
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,则可以将配置部分命名为

代码语言:javascript
运行
复制
config ipsec 'my_ipsec' # my_ipsec is named config

你可以通过更好的方式访问它

代码语言:javascript
运行
复制
uci get ipsec.my_ipsec.type

使用-q -> quite模式,如果未找到条目,该模式将不会通过错误并返回空字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57439809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档