Hsu Amanda
Hsu Amanda

Reputation: 31

use variable between two question mark in a command option in the bash script

here is two samples: this is a sample that would cause 400 error

curl -i -k -u $account:password -H "Content-Type: application/json" -X PUT -d '{"source-path": "http://${ip}/LTMBlackList_Postbody${filename_extension}","type":"ip"}' https://$ip2$api2

and this is a normal one, it can get a 200 OK response:

curl -i -k -u $account:$password -H "Content-Type: application/json" -X PUT -d '{"source-path": "http://127.0.0.1/LTMBlackList_Postbody-test.log","type":"ip"}' https://$ip2$api2

how could i called the curl command in script with variable?

Upvotes: 0

Views: 308

Answers (1)

KamilCuk
KamilCuk

Reputation: 141940

The $ip is not expanded because it is in single quotes. First close single quotes then do double quotes, expand the variable, close double quotes and conitnue single quoting.

Remember to always quote your variable expansions to disable word splitting

curl -i -k -u "$account:$password" -H "Content-Type: application/json" -X PUT \
-d '{"source-path": "http:/'"$ip"'/LTMBlackList_Postbody'"$filename_extension"'","type":"ip"}' "https://$ip2$api"

Upvotes: 1

Related Questions