Решение, которое сработало для меня
source ~/.bashrc
Объяснение
Сначала я проверил, что Дженкинс запускал BASH с помощью echo $SHELLи echo $BASH(обратите внимание, что я явно помещаю #!/bin/bashповерх текстового поля в Jenkins, я не уверен, что это требование для получения BASH). sourceing, /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?