私はいくつかの素敵なコマンドラインスクリプトを使って作業を自動化しようとしています。GIT for Windows bashで 'xargs'を使用する
cd $1
if [ -z ${JENKINS_CREDENTIALS+x} -o -z ${JENKINS_SERVER+x} ]
then
JENKINS_SERVER=$(<jenkins_url.txt)
JENKINS_CREDENTIALS=$(<credentials.txt)
fi
java -jar jenkins-cli.jar -s $JENKINS_SERVER -auth $JENKINS_CREDENTIALS ${@:2}
これは正常に動作します:私はジェンキンスサーバーと通信しているが、このようになります1つのスクリプト(jenkins_cli.sh
)を持っています。
例えば、私が./jenkins_cli.sh localhost/ list-jobs
と呼んだ場合、私のローカルJenkinsサーバーで現在実行中のジョブのリストが表示されます。しかし、私はより多くの空想(例えば何かをしようとした場合:./jenkins_cli.sh localhost/ list-jobs | xargs -L1 ./jenkins-cli localhost/ delete-job
を私は次のエラーを取得:。。。'RROR: No such job 'test_job
を仕事test_job
はが存在して仕事'test_job
ははどのようにこの文字が'
私のコマンドで終わるん存在しないのですか?
これは、GITに付属しているWindows用のbashや、改行を扱う方法、スクリプトなどのパラメータをどのように扱うのかと関係していると思います。./jenkins_cli.sh localhost/ list-jobs | xargs -L1 echo
私は引用符なしで期待される結果を得る...私は本当にこれをさらにデバッグする方法を知りません。私はちょうどファイルにジョブリストを書いて、各行を読んで、私はこの問題の解決策を持っています私のカスタムスクリプトのトンが、私は本当に私は問題があなたのjenkins
コマンドの出力は、出力のDOSの行末スタイル(\r\n
)を使用していることだと思いxargs
:)
私は言及を忘れてしまった: – tim