aの内容をキャプチャして、カールクエリでフィールドの一部としてfile.txt
使用したいと思います。--data
私は試した:
curl ... --data '{ "file_content":[" $(cat file.txt) ", ...]}"' ...
$(cat file.txt)
ただし、これは文字列を送信する前に解釈するのではなく、サーバーに文字列を渡します。
私も次のことを試しました。
curl ... --data '{ "file_content":[" `cat file.txt` ", ...]}"' ...
同様に、文字列を解釈する代わりにそのまま渡します。
答え1
方程式からシェルを削除できる場合は、おそらく3つのバックスラッシュは必要ありません。幸いなことに、次のことができます。
{ printf '{ "file_content":["'
cat file.txt
printf '", ...]}"'
}| curl ... --data-binary @-
よりman curl
。違いに注意を払うことをお勧めします。--data-ascii
(それは-d
私のことです)、、、--data-binary
そして--data-urlencoded
。
答え2
curl -d "$(cat /path/to/my/file.txt)" -X POST http://<your_base_URL>/api/v1/endpoint
これをテストしましたが、うまくいきます。 file_contentキーにすべての内容を入力するには、編集中のファイルに複数の引用符が含まれる可能性があるため、引用に注意する必要があります。