【发布时间】:2020-01-22 10:32:13
【问题描述】:
构建脚本有以下几行:
if [ -z "$JAVA_HOME" ]; then
export JAVA_HOME="$(dirname "$(dirname "$(readlink -e "$(type -p "javac")")")")"
echo "JAVA_HOME=$JAVA_HOME"
fi
放在 sh " " 中运行良好,但是放在 bash 文件中并在运行时抛出错误:
stage ('Build') {
sh '''
if [ -z "$JAVA_HOME" ]; then
export JAVA_HOME="$(dirname "$(dirname "$(readlink -e "$(type -p "javac")")")")"
echo "JAVA_HOME=$JAVA_HOME"
fi
sudo bash ./build
'''
}
控制台输出:
+ '[' -z /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.232.b09-0.el7_7.x86_64 ']'
+ sudo bash ./build
running: ./build
+ trap '>&2 echo '\''ERR'\'' && exit -1' ERR
./build: line 10: JAVA_HOME: unbound variable
【问题讨论】:
-
管道看起来不错,./build 中有什么?
-
build contains " if [ -z "$JAVA_HOME" ]; 然后 export JAVA_HOME="$(dirname "$(dirname "$(readlink -e "$(type -p "javac")" )")")" echo "JAVA_HOME=$JAVA_HOME" fi" 我只是将它从构建脚本中取出来表明它在外部运行良好,而不是在调用脚本时运行
标签: bash jenkins jenkins-pipeline devops jenkins-groovy