2012-11-12 12 views
21

Ho un comando ricciolo:Come passare una variabile in un comando ricciolo in shell scripting

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

La variabile job_id ha un valore in esso, per esempio, 1160. Quando eseguire il comando di arricciatura in guscio esso mi dà il seguente errore:

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

Se mi passa il numero '1160' direttamente nel comando, come illustrato di seguito, il comando funziona ricciolo.

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

Qualcuno può aiutarmi? Voglio essere in grado di passare il valore della variabile nel comando curl.

risposta

36

Quando si utilizzano variabili in , è possibile utilizzare solo virgolette doppie, non virgolette singole: le variabili all'interno di virgolette singole non vengono espanse. imparare la differenza tra 'e "e`. Vedere http://mywiki.wooledge.org/Quotes e http://wiki.bash-hackers.org/syntax/words

+0

doppi apici mentre assegnando il valore 1160 a job_id? Vuoi dire come questo? 'Job_id = 1160'. E poi chiamare all'interno del comando ricciolo utilizzando $ { job_id}? – user1452759

+5

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

+0

Grazie mille per il tuo aiuto !! Funziona! :) Sarò in grado di accettare la tua risposta in 5 minuti. Quindi lo farò :) – user1452759

Problemi correlati