Я пытаюсь использовать переменную среды в сценарии bash, который должен быть запущен как sudo
с source
.где моя переменная окружения?
У меня есть следующий файл (my_file.sh)
echo "this is DOMAIN = $DOMAIN"
Я имею переменную DOMAIN
среды в моей сессии ..
и теперь мне нужно запустить
sudo -E bash -c "source ./my_file.sh"
но на выходе не отображается значение для $DOMAIN
. вместо этого он пуст.
, если я сменю команду, чтобы быть
sudo -E bash -c "echo $DOMAIN"
Я вижу правильное значение ..
, что я делаю неправильно?
Я полностью пропустил, что вы уже использовали '-E'. В этом случае вы уверены, что вы экспортируете переменную? – larsks
Во втором примере '$ DOMAIN' разворачивается текущей оболочкой * до того, как он запускает' sudo'. – chepner
OMG .. не экспорт! Я клянусь, что экспорт был там раньше. –