Rozwiązanie, które zadziałało dla mnie
source ~/.bashrc
Wyjaśnienie
Po raz pierwszy zweryfikowałem, że Jenkins działa w BASH, z echo $SHELLi echo $BASH(uwaga, wyraźnie umieszczam #!/bin/bashna wierzchu obszaru tekstowego w Jenkinsie, nie jestem pewien, czy jest to wymóg uzyskania BASH). sourceing, /etc/profilejak sugerowali inni, nie działało.
Patrząc na /etc/profileznalazłem
if [ "$PS1" ]; then
...
a sprawdzenie „$ PS1” wykazało, że jest pusty. Próbowałem podszywać $PS1się bez skutku
export PS1=1
bash -c 'echo $PATH'
jednak nie przyniosło to pożądanego rezultatu (dodaj resztę tego, $PATHco spodziewam się zobaczyć). Ale jeśli powiem bashowi, aby był interaktywny
export PS1=1
bash -ci 'echo $PATH'
$PATHzmieniono tak jak oczekiwano.
Próbowałem wymyślić, jak poprawnie sfałszować interaktywną powłokę, aby się /etc/bash.bashrczaładować, ale okazało się, że wszystko, czego potrzebowałem, było w dół ~/.bashrc, więc po prostu sourcerozwiązałem problem.
echo $PATHczy zgadza się to z tym, co widzisz w jenkins?