Я заметил, что, например, ~/.bashrc не получен при запуске скрипта с помощью bash -c bla.sh. Так как еще я могу предоставить переменные среды? Желательно без явной установки их в вызове.

1 ответ1

0

Вы можете предоставить их в командной строке (которую вы заявили, что не хотите):

MYVAR=hello ./bla.sh

Вы можете установить и экспортировать их в первую очередь:

MYVAR=hello
export MYVAR
./bla.sh

или же

export MYVAR=hello
./bla.sh

Вы можете настроить файл « environment » и использовать его в своем скрипте (вот как обрабатывается ~/.bashrc ):

echo "MYVAR=hello" > test.env
./bla.sh

В пределах bla.sh:

source test.env
echo ${MYVAR}

Обратите внимание , . (точка / точка) является псевдонимом для source , так что вы можете поставить . test.env вместо source text.env .

Если вы хотите импортировать ваш ~/.bashrc , то вы можете использовать source ~/.bashrc ... но не то, чтобы это обычно настраивало несколько вещей для терминальной / интерактивной среды - это не то, как выполняются скрипты.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .