Какой правильный термин для подхода (шаблона), который использует Linux для загрузки нескольких файлов конфигурации в каталог?

Использовать сортировку версии GNU -вместе с опцией «проверить, отсортирован ли ввод»:

printf '%s\n%s\n' "$version" "$New_version" | sort -rVc 2>/dev/null && echo ok

2>/dev/null— отбрасывать жалобу сортировки, когда ввод не отсортирован; вы просто хотите знать, отсортировано оно или нет, что отражено в коде возврата.

Пробный запуск:

$ version=1.8.0_65
$ New_version=1.8.0_111
$ printf '%s\n%s\n' "$version" "$New_version" | sort -rVc 2>/dev/null && echo ok
$ version=1.8.0_650
$ printf '%s\n%s\n' "$version" "$New_version" | sort -rVc 2>/dev/null && echo ok
ok
$

В качестве альтернативы, сделайте это трудным путем:

oldstr=${old//./ }
oldstr=${oldstr//_/ }
newstr=${new//./ }
newstr=${newstr//_/ }
read -a oldarr <<< "$oldstr"
read -a newarr <<< "$newstr"

[ ${oldarr[0]} -ge ${newarr[0]} ] &&
[ ${oldarr[1]} -ge ${newarr[1]} ] &&
[ ${oldarr[2]} -ge ${newarr[2]} ] &&
[ ${oldarr[3]} -gt ${newarr[3]} ] && echo OK

Это устанавливает новые переменные, в которых мы заменяем все точки и символы подчеркивания пробелами, затем передаем те, что здесь, -строки в read, чтобы разбить их на массивы, затем мы сравниваем каждый элемент параллельных массивов.

0
27.05.2020, 16:56
1 ответ

Я не уверен, есть ли у этого шаблона проектирования хотя бы одно хорошо -известное, официальное название или нет, но перетащите -в файлы конфигурации и перетащите -в конфигурацию directory — это термины, которые я видел для его описания. Если в синтаксисе конфигурационного файла есть директива include , которая может принимать подстановочные знаки, ее можно реализовать даже без модификации рассматриваемой программы.

В двух словах, он обеспечивает автоматизированное администрирование, позволяя пакетам программного обеспечения и/или инструментам автоматизации вставлять отдельные фрагменты конфигурации по мере необходимости вместо того, чтобы пытаться программно изменить один единственный файл конфигурации. Это также может принести пользу системным администраторам, позволяя группировать настройки по назначению.

Обратите внимание, что /etc/init.dне полностью соответствует этому шаблону, а хорошо -известному, несколько более сложному шаблону, известному как сценарии запуска/выключения SysVinit:сценарии в /etc/init.dне просто все включены в процесс запуска -, но существуют отдельные каталоги символических ссылок (/etc/rc.d/rc[0-6].d/), которые используются для определения того, какие сценарии будут вызываться и в каком порядке. Некоторые более современные реализации генерируют и управляют символическими ссылками в этих каталогах автоматически на основе специально отформатированных -комментариев в начале скриптов в /etc/init.d/... но это более позднее расширение, а не исходная часть запуска SysVinit. шаблон сценария завершения работы.

2
18.03.2021, 23:32

Теги

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