在 bash 脚本中:
jenkins_folder=`cut -d "|" -f1 -s input.csv`
jenkins_url='https://url.com:8181/jenkins/view/'
echo "jenkins_folder : ${jenkins_folder}"
for job in `java -jar jenkins-cli.jar -s ${jenkins_url}${jenkins_folder} list-jobs ${jenkins_folder} `
do
echo "Job name:: ${job} ****"
java -jar jenkins-cli.jar -s ${jenkins_url}${jenkins_folder} get-job ${job} > job.xml
done
给出以下输出
jenkins_folder : Platform-X.X.X-SPO-MyPD-Integration-Dummy
****ame:: NH-AccountManagementAudit-Consumer-MyPD-Integration-DUMMY-Reporting
'; perhaps you meant 'NH-AccountManagementAudit-Consumer-MyPD-Integration-DUMMY-Reporting'?
当我替换所有变量的值并运行以下命令时;它工作正常
java -jar jenkins-cli.jar -s https://url.com:8181/jenkins/view/Platform-X.X.X-SPO-MyPD-Integration-Dummy get-job NH-AccountManagementAudit-Consumer-MyPD-Integration-DUMMY-Reporting > job.xml
我在这上面浪费了太多时间。我什至尝试使用 eval 函数,但没有成功。请帮忙。
感谢@Kusalananda,当我试图以奇怪的方式回显其打印输出的作业名称时。我觉得这是根本原因。但不确定为什么会这样
如果我尝试缩短可变作业的长度(使用子字符串);然后打印正常。因此,如果工作的价值很长;它正在制造问题
第一个问题很明显:你的 url 是
https://url.com:8181/jenkins/view
,所以因为它没有以斜杠结尾,所以 的值${jenkins_url}${jenkins_folder}
是https://url.com:8181/jenkins/viewPlatform-X.X.X-SPO-MyPD-Integration-Dummy
。所以修复网址:或者,在组合变量时添加斜线:
接下来,请记住始终引用您的变量:
您的另一个问题是听起来您的文件或命令输出带有 Windows 行结尾。那可能是
input.csv
或其他任何东西,但你需要删除它们。第一次运行或者,如果您没有
dos2unix
,请运行:然后再次尝试您的脚本。如果它仍然不起作用,请使用更多详细信息更新您的问题。如果
\r
是来自您的jenkins-cli
命令,请尝试以下操作: