curlコマンドを使用してパラメータを持つJenkinsジョブを作成するシェルスクリプトを作成しました。以下はコードです。CURLパラメータを変数として使用してポストする
#!/bin/bash
val3=($(cut -d ',' -f3 csvfile.csv))
printf "%s\n" "${val3[0]}"
echo $val3
curl -X POST https://my-jenkins.abc.com/inst/job/Aut/job/pipe-workflow/job/Job3/build \
--user user:token \
--data-urlencode json='{"parameter": [{"name":"valA", "value":"${val3}"}]}'
私は 'csvfile.csv'というファイルを読み込み、curlコマンドで$ val3の値を渡しています。 $ val3の出力は 'John'です。私はカールの中で$ val3の値を代用することができません。それは文学を取っている。私も次のように試みたが、どれも助けなかった。
--data-urlencode json='{"parameter": [{"name":"valA", "value":"$val3"}]}'
--data-urlencode json='{"parameter": [{"name":"valA", "value":"${val3[0]}"}]}'
--data-urlencode json='{"parameter": [{"name":"valA", "value":"val3"}]}'
--data-urlencode json='{"parameter": [{"name":"valA", "value":"${val3}"}]}'
--data-urlencode json="{"parameter": [{"name":"valA", "value":"${val3}"}]}"
上記のいずれも機能していません。最後の1つはエラーを投げている。私はジェンキンスジョブで見ると、パラメータの値は以下の通りです:
$ val3は、val3は、$ {} val3は
それが値を代入以上であるとしてそれはそれを取っています。
printf "%s\n" "${val3[0]}"
echo $val3
上記の2行は、私がジョンとして出力しているが、カールを入れている間は機能していません。これを引き起こしていると私はそれを修正する方法はありますか?あなたのその後
val3=$(cut -d ',' -f3 csvfile.csv)
:
val3=($(cut -d ',' -f3 csvfile.csv))
あなたはおそらくこれをしたいので、これは、配列を作成します。
は、私が見ることができるいくつかの問題がある。ここ事前
http://stackoverflow.com/q/6697753/2088135 –
感謝トム。私は一重引用符と二重引用符の両方を試してみましたが、うまくいきませんでした。 – Raji
外部で二重引用符を使用し、文字列の中で二重引用符をエスケープする必要があります。変数に二重引用符が含まれていないと仮定します。 –