У меня есть скрипт с именем test.sh
на удаленном сервере.Он печатает переменную среды, которая была установлена в .profile
, и выглядит следующим образом:
#!/bin/ksh
echo "JAVA_HOME: $JAVA_HOME"
Когда я запускаю скрипт вручную, я получаю тот же результат, что и с командой echo.
my_user@remote_server$ echo "JAVA_HOME: $JAVA_HOME"
JAVA_HOME: /path/to/java_jdk
my_user@remote_server$ ./test/test.sh
JAVA_HOME: /path/to/java_jdk
Команды, которые я настроил в Jenkins SSH plugin
, точно такие же, как и те, которые я выполнял вручную:
echo "JAVA_HOME: "$JAVA_HOME
./test/test.sh
Но когда я запускаю его, я получаю следующий вывод в Jenkins:
JAVA_HOME: /data/work/java/jdk1.7.0_45
JAVA_HOME:
Почему нельзя получить доступ к переменным среды из скрипта?
Мой .profile выглядит так
#!/bin/ksh
# ...
export JAVA_HOME=/path/to/java_jdk
# ...