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
もう1つの質問は、Windows行の末尾のファイルやコマンド出力があるかのように聞こえることです。これはinput.csv
何でも構いませんが、削除する必要があります。最初の実行
dos2unix input.csv
または 1 つもない場合は、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