Как добавить правило маршрутизации IPv6 с помощью systemd-networkd?

Я предполагаю, что потенциальная проблема заключается в том, что ^является допустимым символом в именах файлов, поэтому значение шаблона, содержащего его, меняется в зависимости от того, установлена ​​ли опция или нет:

$ touch 'foo' 'bar' '^foo' '^bar'
$ ls ^foo*
^foo
$ setopt extendedglob
$ ls ^foo*           
bar  ^bar  ^foo

Стандартная оболочка воспринимает ^как обычный символ, поэтому эта функция, вероятно, отключена по умолчанию для совместимости.

Пока вы помните, какие параметры включены, т. е. знаете, как оболочка интерпретирует подстановочные знаки, оставление extended_globвключенным не должно быть проблемой при интерактивном использовании.

Для скриптов, которые этого не ожидают, но используют странные имена файлов, это может быть проблемой, но не -интерактивные оболочки не должны читать .zshrc, так что его установка должна быть в порядке. Только не устанавливайте его в .zshenv.


Расширенные подстановочные скобки в стиле ksh -(@(...|...)и т. д.,setopt kshglob)имеют аналогичную проблему, поскольку они конфликтуют с тем, как zsh обрабатывает скобки в подстановочных скобках. @(f|b)означает разные вещи в зависимости от того, установлен ли kshglobили нет.

1
01.02.2020, 20:40
1 ответ

В моем фактическом файле конфигурации отсутствовала строка From=::/0и он полагался наFamily=ipv6(илиboth). Как было предложено , эта проблема GitHub , Family=не является ключом в systemd 242 (, новым в 243 ), поэтому From=::/0по-прежнему необходим.

1
28.04.2021, 23:24

Теги

Похожие вопросы