Вам нужна опция extendedglob
для (#b)
.
Также 05 + 1
дает 6
, а не 06
.
Вы можете сделать (с extendedglob
иhistsubstpattern
)
^(#b)E(<->)^E${(l:2::0:)$((match[1]+1))}
или:
echo ${_//(#b)E(<->)/${(l:2::0:)$((match[1]+1))}
<->
является формой оператора сопоставления <x-y>
положительных десятичных чисел, в котором обе границы опущены, поэтому соответствует любая не-пустая последовательность десятичных цифр. То же, что и [0-9]##
(, но для ##
требуется расширенный -глобус, а для <x-y>
нет ).(l:2::0:)
(обратите внимание, что это строчная буква L, а не цифра 1
)— это левый -флаг расширения параметра заполнения, здесь с 0
s, длиной 2
. Выглядит просто, но это не так. Поверьте мне!
[ПК _A@PC _A ~] #nano /etc/sysctl.conf net.ipv4.ip _вперед = 1
[ПК _A@PC _A ~] #iptables -t nat -A POSTROUTING ! -d 192.168.1.127/27 -o ens160 -j МАСКАРАД
ПК _B является экземпляром Openstack. Его частный IP-адрес — 192.168.118.10/27, а общедоступный IP-адрес — 192.168.1.140/27.
Проблема :[PC _B@PC _B ~]$ sudo route add default gw 192.168.1.133 eth0
SIOCADDRT :Сеть недоступна
[ПК _B@PC _B ~]$ маршрут
хост по умолчанию -192 -168 -10 0.0.0.0 UG 0 0 0 eth0
192.168.118.0 0.0.0.0 255.255.255.240 U 0 0 0 eth0
Почему «SIOCADDRT :Сеть недоступна»?Как я уже упоминал общедоступный IP-адрес ПК _B — 192.168.1.140/27 [экземпляр OpenStack], а его частный IP-адрес — 192.168.118.10/27.
Если ПК _B не имеет прямого доступа к сети 192.168.1. *, то недостающий маршрут необходимо добавить в сетевые настройки OpenStack, а не в ПК _B как таковой.