2017-08-18 33 views
0

私のスクリプトはコマンドライン引数を受け取り、これを二重引用符で囲んだcurlコマンドに渡す必要があります。curlに二重引用符で囲まれたコマンドライン引数

json=$1; 
echo $json; 

curl -X POST -d '{"asin":\"$json\", "template":"bolt","version":"1d"}' -H "Content-Type: application/json" http://someURL

しかし、その動作していない:これは私がこれまで試したものの簡易版です。助けてください

+0

[bashスクリプト関数で定義された変数でカールPOSTを使用する](https://stackoverflow.com/questions/17029902/using-curl-post-with-variables-defined-in-bash-script-functions ) –

答えて

0

一重引用符で囲まれた文字列の$ -variablesは展開されません。 -dニーズは、二重引用符で囲む引数、または少なくとも$json一部をする必要があります:

curl -X POST -d '{"asin":"'"$json"'", "template":"bolt","version":"1d"}' -H "Content-Type: application/json" http://someURL 

「は、単一引用符で囲まれた文字列を-terminatesそして"$json"は、次の、その後'は、隣接する単一引用符で囲まれた文字列を開始します。

"$json"変数は、エスケープされていない二重引用符を含む文字列に展開しないでください。そうしないと、結果のjsonが壊れてしまいます。

関連する問題