このカールコマンドに変数を追加するにはどうすればよいですか?

このカールコマンドに変数を追加するにはどうすればよいですか?

私はテキスト文字列をサーバーに送信するカールコマンドを持っていて、ファイルまたはbash変数からそのテキスト文字列を取得する方法を見つけようとしました。コマンドは次のとおりです。

curl -X POST -u "apikey:<apikey>"
--header "Content-Type: application/json"
--data '{"text": "<variable>"}'
"<url>"

そこに変数を取得する方法がわかりません。 $variableと$(< file)に置き換えようとしましたが、エコーなしでテキストを吐き出す方法がわからず、カールでエコーできませんでした。

ベストアンサー1

一重引用符で囲まれた文字列を停止し、変数拡張(二重引用符を使用)を実行してから、一重引用符で囲まれた文字列を復元します。

--data '{"text": "'"$variable"'"}'

$variable周囲の環境で合法的なJSONを形成するように拡張する必要があります。そうしないと、相手は非常に満足していない可能性があります。) )

JSONに特殊シンボルを含めることができる場合は、"$variable"まずそのシンボルをエスケープする必要があります。クサランダ より一般的な答えそのような理由で。

おすすめ記事