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에게 감사드립니다. 인쇄물에 작업 이름을 이상한 방식으로 반영하려고 했을 때.. 이것이 근본 원인인 것 같지만.. 왜 이런 일이 발생하는지 잘 모르겠습니다.
변수 작업의 길이를 줄이려고 하면(하위 문자열 사용) 문제 없이 인쇄됩니다. 따라서 직업의 가치가 장기적이라면 문제가 발생합니다.
답변1
첫 번째 문제는 분명합니다. 귀하의 URL은 https://url.com:8181/jenkins/view
이므로 슬래시로 끝나지 않으므로 값은 ${jenkins_url}${jenkins_folder}
입니다 https://url.com:8181/jenkins/viewPlatform-X.X.X-SPO-MyPD-Integration-Dummy
. 따라서 URL을 수정하세요.
jenkins_url='https://url.com:8181/jenkins/view/'
또는 변수를 결합할 때 슬래시를 추가합니다.
${jenkins_url}/${jenkins_folder}
다음으로, 항상 변수를 인용하는 것을 잊지 마세요.
java -jar jenkins-cli.jar -s "${jenkins_url}${jenkins_folder}" get-job "$job" > job.xml
다른 질문은 Windows 줄 끝이 있는 파일이나 명령 출력이 있는 것처럼 들린다는 것입니다. 이것은 input.csv
무엇이든 될 수 있지만 삭제해야 합니다. 첫 번째 실행
dos2unix input.csv
또는 하나도 없으면 dos2unix
다음을 실행하십시오.
sed -i 's/\r//' input.csv
그런 다음 스크립트를 다시 시도하십시오. 그래도 작동하지 않으면 더 자세한 내용으로 질문을 업데이트하세요. \r
귀하의 명령에서 나온 경우 jenkins-cli
다음을 시도하십시오.
jenkins_folder=`cut -d "|" -f1 -s input.csv`
jenkins_url='https://url.com:8181/jenkins/view/'
echo "jenkins_folder : ${jenkins_folder}"
java -jar jenkins-cli.jar \
-s "${jenkins_url}/${jenkins_folder}" \
list-jobs "$jenkins_folder" |
sed 's/\r$//' | while read job
do
echo "Job name:: ${job} ****"
java -jar jenkins-cli.jar -s ${jenkins_url}${jenkins_folder} get-job ${job} > job.xml
done