我正在尝试在 Jenkins (1.638) 的 Execute Shell 上编写一个简单的 If 语句。我查看了类似的问题 ,但它仍然不起作用(请参阅下面的结果输出)。我尝试了 [[ 和 [ 以及相关的空格,看来 Jenkins 的处理方式与常规 bash 不同。我什至在 if 和 ; 的同一行上尝试了 then。任何的想法 ?
if [[ "${BRANCH_NAME}" == "master" ]] || [[ "${BRANCH_NAME}" == "master_dev" ]]
then
./runUnitTests.sh ${REPOSITORY_NAME} ${BASE_BUILD_CORE} ${BRANCH_NAME} ${BUILD_NUMBER} || echo "The npm may fail but the report exists"
fi
Run Code Online (Sandbox Code Playgroud)
詹金斯的结果是
Mic*_*l J 16
你有没有考虑在你的 shell 中包含一个 bash shebang?
#!/bin/bash -xe
if [[ "${BRANCH_NAME}" == "master" ]] || [[ "${BRANCH_NAME}" == "master_dev" ]]
....
Run Code Online (Sandbox Code Playgroud)
这将迫使 Jenkins 使用您本地的 bash 解释器。