2012-11-12 3 views
21

ich eine Locke Befehl übergeben:Wie eine Variable in einem curl Befehl in Shell-Skripten haben

curl -u ${USER_ID}:${PASSWORD} -X GET 'http://blah.gso.woo.com:8080/rest/job-execution/job-details/${job_id}' 

Die Variable job_id einen Wert in sich hat, sagen wir, 1160. Wenn ich den curl Befehl in Shell führen Sie es die folgende Fehlermeldung gibt mir:

{"message":"Sorry. An unexpected error occured.", "stacktrace":"Bad Request. The request could not be understood by the server due to malformed syntax."} 

Wenn ich die Nummer ‚1160‘ direkt in den Befehl übergeben, wie unten dargestellt, die curl Befehl funktioniert.

curl -u ${USER_ID}:${PASSWORD} -X GET 'http://blah.gso.woo.com:8080/rest/job-execution/job-details/1160' 

Kann mir bitte jemand helfen? Ich möchte in der Lage sein, den Wert der Variablen im curl-Befehl zu übergeben.

Antwort

36

Wenn Sie Variablen in verwenden, können Sie nur doppelte Anführungszeichen verwenden, keine einfachen Anführungszeichen: die Variablen in einfachen Anführungszeichen werden nicht erweitert. Lernen Sie den Unterschied zwischen "und" und `. Siehe http://mywiki.wooledge.org/Quotes und http://wiki.bash-hackers.org/syntax/words

+0

doppelte Anführungszeichen, während der Wert 1160 Zuordnung JOB_ID? Sie mögen das bedeuten?‚Job_id = 1160‘. Und es dann innerhalb des curl Befehl aufrufen $ mit { job_id}? – user1452759

+5

ja: 'job_id = 1160; curl -u $ {BENUTZER_ID}: $ {PASSWORT} -X GET" http://lppma670.gso.aexp.com:8080/rest/job-execution/job-details/$ {job_id} "' –

+0

Vielen Dank für Ihre Hilfe !! Es funktioniert! :) Ich werde Ihre Antwort in 5 Minuten akzeptieren. Also werde ich das tun :) – user1452759

Verwandte Themen