экспортировать все переменные из среды EnvironmentFiles

Я хотел бы экспортировать все переменные, используемые определенной службой systemd, и указывается в его файле с помощью EnvironmentFile .

Например, foo.service :

 [Service] ... EnvronmentFile=/foo.env EnvronmentFile=/bar.env 

foo.env :

 a=1 #b=2 c=3 

Поэтому я думал добавить к моему bashrc что-то вроде

 set -a grep EnvironmentFile /etc/systemd/system/foo.service | grep -v '^ *#' | cut -d'=' -f2 | xargs -I {} bash -c 'source {};' set +a 

как указано в этом ответе .

Есть ли более элегантное решение?

  • Ноутбук перезагружается, а не возобновляет работу с systemd suspend при питании от батареи (приостановка работы от сети переменного тока работает)
  • Различия между неактивными и отключенными активными и включенными службами
  • Каковы альтернативы для запуска и остановки конфигурации openvpn в Debian Jessie?
  • Поручить выполнить блок после успешного завершения работы другого устройства
  • Как использовать цитату и доллар с помощью systemd
  • Bash всегда выводит меньше, как я могу отключить это?
  • Как включить «Предсказуемые имена сетевого интерфейса»?
  • Задержка выключения системы с помощью systemd?
  • One Solution collect form web for “экспортировать все переменные из среды EnvironmentFiles”

    Это не сработает, потому что вы выполняете новую оболочку bash для создания «источника»,

    Пытаться:

     load_env() { local files=( $(egrep '^[ ]*EnvironmentFile' "$1" ) ) local f set -a for f in "${files[@]}" do . "${f##*=}" # this expression delete the EnvironmentFile= part done set +a } load_env /etc/systemd/system/foo.service 
    Interesting Posts

    Как отключить кнопки «Вперед» / «Назад» на моей мыши

    Создание дискового пространства на гостевой странице Vagrant / VirtualBox

    Задача Cron, запланированная для запуска в определенный день недели, также работает в последний день месяца

    Типичная установка сетки Oracle 11gR2: ошибка для privateinterconnects

    Что делает эта линия в bash? Параметрируемая || имяскрипт

    создать многолучевое распространение для локального раздела

    Как вывести правильную цель для кросс-сборки GCC?

    Как вернуться на ваш компьютер с ПК, и ваши USB-накопители с ОС Linux потеряны

    Не удается выйти из полноэкранного режима в терминале Pantheon

    Компиляция программного обеспечения с теми же параметрами, что и предыдущая установка

    Vim не работает внутри tmux

    Как вы извлекаете целое слово, содержащее подстроку?

    sed не удаляет символ новой строки

    Ускорить ifdown / ifup

    Доступ к нескольким Wi-Fi-сетям одновременно с debian wheezy

    Linux и Unix - лучшая ОС в мире.