Для alterator-net-function 2.1.1-alt1 в функции add_systemd_networkd_ini_option() для добавления дополнительного значения параметра в network-файл после уже там имеющегося используется sed вида (строка 1089) sed -i -e "1,// s/^\(\s*\)\($latest\)$/\1\2\n\1$3 = $4/" -- "$1" В функции write_systemd_networkd_bootproto() (строка 1179) эта функция вызывается для добавления в network-файлов адресов IP - которые указываются с маской. В sed как разделитель для оператора замены 's' используется '/' - после подставления в строку запуска sed адреса IP получается синтаксическая ошибка. Пример для проверки: ------------8<-------------- #!/bin/sh . alterator-net-functions network_filename=$(mktemp /tmp/XXXX.network) for addr in 10.0.0.1/8 10.0.0.2/8 10.0.0.3/8 fd00:1/64 fd00:2/64; do echo "ADDR=$addr" add_systemd_networkd_ini_option "$network_filename" "Network" "Address" "$addr" done echo echo "Network file:" cat $network_filename rm -f "$network_filename" ------------8<-------------- Результат запуска: ------------8<-------------- ADDR=10.0.0.1/8 ADDR=10.0.0.2/8 sed: -e expression #1, char 42: unknown option to `s' ADDR=10.0.0.3/8 sed: -e expression #1, char 42: unknown option to `s' ADDR=fd00:1/64 sed: -e expression #1, char 42: unknown option to `s' ADDR=fd00:2/64 sed: -e expression #1, char 42: unknown option to `s' Network file: [Network] Address = 10.0.0.1/8 ------------8<-------------- В network-файл добавился только первый адрес, т.к. для него в add_systemd_networkd_ini_option() строка с sed не использовалась, остальные вызвали ошибки. По-видимому, надо заменить разделитель на что-либо другое - как вариант, на ' . Хотя это зависит от того, где используется эта функция - но в alterator-net-function через неё записываются только Address, Gateway и DNS - в них кавычек быть не может (% и много другое может быть в DNS как часть адреса IPv6).
Спасибо за подробный анализ. > По-видимому, надо заменить разделитель на что-либо другое - как вариант, на > ' . > Хотя это зависит от того, где используется эта функция - но в > alterator-net-function > через неё записываются только Address, Gateway и DNS - в них кавычек быть не > может > (% и много другое может быть в DNS как часть адреса IPv6). Думаю | вполне подойдет.
alterator-net-functions-2.1.2-alt1 -> sisyphus: Tue Jan 23 2024 Mikhail Efremov <sem@altlinux> 2.1.2-alt1 - Fix write_systemd_networkd_bootproto() (closes: #49159). - Fix sed regex for systemd-networkd config (closes: #49158).