Ich weiß, dass es ein paar Fragen mit Antworten darauf gibt, wie das geht, aber ich kann mein Szenario immer noch nicht zum Arbeiten bringen, wenn ich meine Variable in Anführungszeichen hülle.Verwenden von Umgebungsvariablen innerhalb eines Bash-Skripts Jenkins
Ich führe eine Curl-Anfrage aus, um einen gültigen Crumb in Jenkins zu erhalten, damit ich dann einen Job über eine POST-Anfrage ausführen kann.
Also im Moment bekomme ich Antwort wie Password Invalid
als Variable ${USER_TOKEN}
nicht
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)')
Wenn ich hart codieren die USER_TOKEN
dann wird dies funktionieren, aber ich wollte offensichtlich das vermeiden.
Wie kann ich diesen curl
Befehl ausführen und die USER_TOKEN
übergeben?
Updates
Wenn ich ${USER_TOKEN}
mit doppelten Anführungszeichen umgeben ich immer noch den gleichen Fehler.
CRUMB=$(curl -s 'http://jenkins:"${USER_TOKEN}"@localhost:8080/crumbIssuer/api/xml?xpath=concat(//crumbRequestField, ":",//crumb)')
Und wenn ich die curl
Anfrage mit doppelten Anführungszeichen umgeben bekomme ich
Invalid Xpath expression, contact(//crumbRequestField,:,//crumb)
Unexpected ':'
Warum können Sie es nicht doppelt angeben? 'curl -s 'http: // jenkins:'" $ {USER_TOKEN} "'@ localhost'? – 123