Решение, которое сработало для меня
source ~/.bashrc
Объяснение
Сначала я проверил, что Дженкинс запускал BASH с помощью echo $SHELL
и echo $BASH
(обратите внимание, что я явно помещаю #!/bin/bash
поверх текстового поля в Jenkins, я не уверен, что это требование для получения BASH). source
ing, /etc/profile
как предлагали другие, не работал.
Глядя на /etc/profile
я нашел
if [ "$PS1" ]; then
...
и проверка "$ PS1" обнаружила, что оно пустое. Я пробовал спуфинг, $PS1
но безрезультатно
export PS1=1
bash -c 'echo $PATH'
однако это не дало желаемого результата (добавьте остальное, что $PATH
я ожидаю увидеть). Но если я скажу, чтобы bash был интерактивным
export PS1=1
bash -ci 'echo $PATH'
$PATH
был изменен , как я ожидал.
Я пытался выяснить, как правильно подделать интерактивную оболочку, чтобы /etc/bash.bashrc
загрузить ее, но оказалось, что все, что мне нужно, было вниз ~/.bashrc
, так что простое source
решение проблемы решило.
echo $PATH
ли это тому, что вы видите в jenkins?