2012-11-12 64 views
21

Tôi có một lệnh curl:Làm thế nào để vượt qua một biến trong một lệnh curl trong kịch bản shell

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

Biến job_id có một giá trị trong nó, nói, 1160. Khi tôi thực hiện lệnh curl trong vỏ nó cung cấp cho tôi lỗi sau:

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

Nếu tôi chuyển số '1160' trực tiếp trong lệnh, như được hiển thị bên dưới, lệnh curl hoạt động.

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

Ai đó có thể giúp tôi không? Tôi muốn có thể chuyển giá trị của biến trong lệnh curl.

Trả lời

36

Khi sử dụng biến trong , bạn chỉ có thể sử dụng dấu ngoặc kép, không phải dấu nháy đơn: các biến bên trong dấu nháy đơn không được mở rộng. Tìm hiểu sự khác biệt giữa "và" và `. Xem http://mywiki.wooledge.org/Quoteshttp://wiki.bash-hackers.org/syntax/words

+0

dấu ngoặc kép trong khi gán giá trị 1160 để job_id? Ý anh là như thế này? 'Job_id = 1160'. Và sau đó gọi nó bên trong lệnh curl sử dụng $ { job_id}? – user1452759

+5

có: 'job_id = 1160; curl -u $ {USER_ID}: $ {PASSWORD} -X TẢI" http://lppma670.gso.aexp.com:8080/rest/job-execution/job-details/$ {job_id} "' –

+0

Cảm ơn bạn rất nhiều vì đã giúp đỡ của bạn !! Nó hoạt động! :) Tôi sẽ có thể chấp nhận câu trả lời của bạn trong 5 phút. Vì vậy, sẽ làm điều đó :) – user1452759

Các vấn đề liên quan