【发布时间】:2021-04-20 09:36:57
【问题描述】:
在 Jenkinsfile 中,我试图从 find 命令中移动文件:
steps {
sh "mkdir -p $WORKSPACE/rpmbuild/{SPECS,BUILD,SRPMS} $WORKSPACE/rpmbuild/RPMS/{noarch,x86_64} $WORKSPACE/rpmbuild/SOURCES/hello_world/"
sh "mv $WORKSPACE/hello_world.spec $WORKSPACE/rpmbuild/SPECS/"
script {
FOLDER_NAME = sh(returnStdout: true, script: 'echo $WORKSPACE | xargs basename')
}
sh "find $WORKSPACE/ -maxdepth 1 ! -name rpmbuild ! -name ${FOLDER_NAME} -exec mv {} rpmbuild/SOURCES/hello_world/ \\;"
}
当我在 Jenkins 上运行构建时,我收到以下错误消息:
[Pipeline] // script
[Pipeline] sh
+ find /home/jenkins/workspace/hello_world/ -maxdepth 1 '!' -name rpmbuild '!' -name hello_world
/home/jenkins/workspace/hello_world/html
/home/jenkins/workspace/hello_world/tests
/home/jenkins/workspace/hello_world/.git
/home/jenkins/workspace/hello_world/Jenkinsfile
/home/jenkins/workspace/hello_world/README.md
/home/jenkins/workspace/hello_world/CHANGELOG.txt
/home/jenkins/workspace/hello_world/.gitignore
/home/jenkins/workspace/hello_world/conf
+ -exec mv '{}' /home/jenkins/workspace/hello_world/rpmbuild/SOURCES/hello_world/ ';'
/home/jenkins/workspace/hello_world@tmp/durable-59cf8666/script.sh: line 2: -exec: command not found
[Pipeline] }
我很确定我没有以正确的方式做我想做的事,但如果有人可以帮助我解决我的问题或向我解释如何以更好的方式做到这一点,我将不胜感激.
【问题讨论】:
-
我找到了根本原因,FOLDER_NAME 变量末尾存在 EOL 字符...
标签: find jenkins-pipeline exec