在尝试编写用于设置 VPN 默认路由度量的脚本时,我遇到了以下参数扩展问题。
出于测试目的,我已将代码简化为以下内容:
vpn_route='default via 10.106.160.1 proto static metric 50'
echo ip route del "$vpn_route"
echo ip route add "${vpn_route/metric +([0-9])/metric 101}"
echo ip route add "${vpn_route/%metric */metric 101}"
Run Code Online (Sandbox Code Playgroud)
一旦我删除了 echo 命令,这应该
metric <number>
部分替换为metric 101
为了测试,我添加了第二个具有不太具体模式的变体。
如果我在交互式 bash shell 中执行此代码,它会按预期工作:
$ vpn_route='default via 10.106.160.1 proto static metric 50'
$ echo ip route del "$vpn_route"
ip route del default via 10.106.160.1 proto static metric 50
$ echo ip route add "${vpn_route/metric +([0-9])/metric 101}"
ip route add …
Run Code Online (Sandbox Code Playgroud)