Это не результат разделения слов (, точнее разделения токенов ), это результат раскрытия тильды в присваиваниях переменных:
Each variable assignment is checked for unquoted tilde-prefixes immediately following a ‘:’ or the first ‘=’. In these cases, tilde expansion is also performed.
Когда он разбивает команду на токены, разделители слов, которые bash использует, являются ее метасимволами:
A character that, when unquoted, separates words. A metacharacter is a space, tab, newline, or one of the following characters: ‘|’, ‘&’, ‘;’, ‘(’, ‘)’, ‘<’, or ‘>’.
mypath=/program_files:~/home/t
— это один токен с точки зрения bash.
Если я правильно понимаю, ваш основной маршрут (шлюз )будет от DHCP, а второй будет резервным. Таким образом, вы можете установить статический маршрут с большей метрикой, который будет использоваться только в том случае, если первичный маршрут не работает. Вы можете проверить свои текущие показатели с помощью route -n
.
При использовании systemd-networkd
файл .network
должен выглядеть как:
[Match]
Name=usbceth0
[Network]
DHCP=ipv4
DNS=8.8.8.8
DNS=8.8.4.4
# LAN_1
[Address]
Label=usbceth0:0
Address=192.168.100.10/24
# LAN_2 (4G-LAN)
[Address]
Label=usbceth0:1
Address=192.168.50.70/24
# "Static"-Gateway as backup
[Route]
Gateway=192.168.50.1
#Destination=0.0.0.0/0
Metric=1025 # The Gateway of the DHCP gets the default 1024
Если он жалуется, вы можете добавить Destination=
, а также вы можете использовать RouteMetric
для маршрута DHCP, если вы хотите создать собственную метрику. Не забудьте перезапустить systemd-networkd.service
.
Или вы можете сделать это с помощью ip route add 'Destination' via 'Gateway' metric
, но это не останется после перезагрузки