非常新的groovy,我有非常简单的groovy代码,运行得非常好:
sh """
git checkout deploy
git pull
git branch
"""
PREVIOS_VERSION = sh ( script: 'cat ' + VERSION_FILE + ' | grep current_version | awk -F\'[" "]\' \'{print $3}\'', returnStdout: true).trim()
echo PREVIOS_VERSION
sh "bumpversion ${SEMANTIC_VERSION_COMPONENT} --config-file ${VERSION_FILE} --verbose"
NEW_VERSION = sh ( script: 'cat ' + VERSION_FILE + ' | grep current_version | awk -F\'[" "]\' \'{print $3}\'', returnStdout: true).trim()
echo NEW_VERSION
sh """
git checkout ${GIT_BRANCH}
git branch
"""
当我将此代码组合成一个sh
命令时,如下所示:
sh """
git checkout deploy
git pull
git branch
PREVIOS_VERSION = ( script: 'cat ' + VERSION_FILE + ' | grep current_version | awk -F\'[" "]\' \'{print $3}\'', returnStdout: true).trim()
echo PREVIOS_VERSION
bumpversion \${SEMANTIC_VERSION_COMPONENT} --config-file \${VERSION_FILE} --verbose
NEW_VERSION = ( script: 'cat ' + VERSION_FILE + ' | grep current_version | awk -F\'[" "]\' \'{print $3}\'', returnStdout: true).trim()
echo NEW_VERSION
git checkout ${GIT_BRANCH}
git branch
"""
然后我收到了这个错误:
WorkflowScript: 58: illegal string body character after dollar sign;
solution: either escape a literal dollar sign "\$5" or bracket the value expression "${5}" @ line 58, column 7.
sh """
即使我尝试使用\
字符,但仍然没有运气。有人能告诉我如何才能达到最终结果。
答案 0 :(得分:-1)
你需要在每一行的末尾添加\ n:
sh“git checkout deploy \ n”+ “git pull \ n”+ “git branch \ n”
抱歉我的错误,我只是理解了这个问题。你不能以你想要的方式去做。 当你使用这条线时: PREVIOS_VERSION = sh(脚本:'cat'+ VERSION_FILE +'| grep current_version | awk -F \'[“”] \'\'{print $ 3} \'',returnStdout:true).trim()
它是一个调用shell命令的groovy语法。 你不能将它插入shell中,因为shell不会理解语法