Другим способом - вдохновленным этим этим ответом - для «инъекции» является следующий (пример fcron):
%daily 00 12 \
set -a; \
. /path/to/file/containing/vars; \
set +a; \
/path/to/script/using/vars
Из help set
:
-a Пометить переменные, которые были изменены или созданы для экспорта.
Использование + вместо - приводит к отключению этих флагов.
blockquote>Таким образом, все между
set -
иset +
экспортируется вenv
и затем доступно для других скриптов и т. Д. Без использованияset
переменные получаются, но живут только вset
.Кроме того, полезно передавать переменные, когда программе требуется выполнить учетную запись, отличную от root, но вам понадобятся некоторые переменные внутри этой среды другого пользователя. Ниже приведен пример передачи в nullmailer vars для форматирования заголовка электронной почты:
su -s /bin/bash -c "set -a; \ . /path/to/nullmailer-vars; \ set +a; \ /usr/sbin/logcheck" logcheck