私は、これを行う方法についていくつかの質問があることを知っていますが、二重引用符で変数をラップするときに私のシナリオが機能するように見えます。bashスクリプト内で環境変数を使用する
私は、Jenkinsで有効なクラムを取得するためにcurlリクエストを実行しています。そのため、POSTリクエストを介してジョブを実行できます。変数${USER_TOKEN}
が、私はUSER_TOKEN
をハードコードした場合、これは動作します
echo "The USER TOKEN is " ${USER_TOKEN} # This outputs 123456789 for example
CRUMB=$(curl -s 'http://jenkins:${USER_TOKEN}@localhost:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField, ":",//crumb)')
を認めたが、私は明らかにそれを避けたかったされていないとして、私はPassword Invalid
のような応答を得る現時点ではそう
。
このcurl
コマンドを実行して、USER_TOKEN
を渡すにはどうすればよいですか?
アップデート
私は二重引用符で${USER_TOKEN}
を囲むと、私はまだ同じエラーを取得します。
CRUMB=$(curl -s 'http://jenkins:"${USER_TOKEN}"@localhost:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField, ":",//crumb)')
そして、私は二重引用符でcurl
要求を囲む場合、私はあなたが二重引用符を含む文字列を引用倍にする必要がある
Invalid Xpath expression, contact(//crumbRequestField,:,//crumb)
Unexpected ':'
なぜあなたはそれをダブルクォートできませんか? 'curl -s 'http:// jenkins:'" $ {USER_TOKEN} "'@ localhost'? – 123