如果不存在,如何添加未命名的 uci 部分?
How to add unnamed uci section if not exist?
我想通过 uci 配置 ipsec(总是 ipsec[0])。如果 ipsec 部分存在,一切正常。我可以使用 uci ipsec.@ipsec[0].type='tunnel' 修改 ipsec。但是,如果 ipsec 部分不存在,则此命令不起作用。如果 ipsec 部分不存在,我想添加。
我找到的唯一方法是使用 shell 脚本
if ! uci -q show ipsec.@ipsec[0]
then
uci add ipsec ipsec
fi
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 -> 完全模式,如果找不到条目和 return 空白字符串,则不会通过错误。
我想通过 uci 配置 ipsec(总是 ipsec[0])。如果 ipsec 部分存在,一切正常。我可以使用 uci ipsec.@ipsec[0].type='tunnel' 修改 ipsec。但是,如果 ipsec 部分不存在,则此命令不起作用。如果 ipsec 部分不存在,我想添加。
我找到的唯一方法是使用 shell 脚本
if ! uci -q show ipsec.@ipsec[0]
then
uci add ipsec ipsec
fi
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 -> 完全模式,如果找不到条目和 return 空白字符串,则不会通过错误。