В системах, которые я использую, есть две системы сценариев, которые запускаются каждый раз, когда DHCP-клиент продлевает аренду. Они расположены в /etc/dhcp/dhclient-enter-hooks.d/...
и в /etc/dhcp/dhclient-exit-hooks.d/...
. Они могут быть в другом месте, в зависимости от вашего варианта Linux. Вы можете добавить туда сценарии, которые будут выполняться каждый раз при продлении аренды, и эти сценарии будут иметь доступ ко всем парам ключ/значение, отправляемым DHCP-сервером, в виде переменных оболочки. То, что вы делаете с ними в своем крючковом скрипте (и ), широко открыто. Я предполагаю, что вы используете инструменты DHCP, совместимые с ISC DHCP. Если нет, возможно, вы можете рассмотреть возможность перехода на это. Они документируют, как сценарии клиентских ловушек могут получить параметры, отправленные с DHCP-сервера, и приводят несколько полезных примеров.
Во многих оболочках фигурные скобки начинают раскрытие скобок. Но sh -совместимые снаряды, Zsh и (t )csh по-прежнему оставляют равнину {}
в покое. Однако, по крайней мере, оболочка рыбы этого не делает, она удаляет {}
без кавычек и, например. echo {}
выводит только пустую строку. Это нарушило бы команду find
, использующую {}
, поэтому вам нужно заключить фигурные скобки в кавычки.
Дело не в том, что имя файла обрабатывается для расширений оболочки после того, как find
заполняет его. В этот момент оболочка не задействована, если вы не вызываете ее явно.