UnixシェルスクリプトからJSONファイルを読み取り、カールを介してHTTP POSTに送信するにはどうすればよいですか?

UnixシェルスクリプトからJSONファイルを読み取り、カールを介してHTTP POSTに送信するにはどうすればよいですか?

product.jsonUnixシェルスクリプト(と同じディレクトリにあります)からJSONファイルを読み込みますcurl

curlProduct.sh:

for file in ~/work/project/json/product.json

do 
  echo "$file"
   curl -X POST --data @"$file" 'http://localhost:8080/api/v1/purchaseProduct' \
   --header 'Content-Type:application/json' \ 
   --header 'Authorization: Bearer f682e27f-daf6-234r-3456-623b9fe65bds'

  echo "After HTTP POST"  
done

以下を使用してこのコマンドを実行するとき:

sh curlProduct.sh

それがする唯一のことは、この行にかかっているように見える正規化されたファイルパス(名前付き)を印刷することです。その後、echo "$file"毎回キャンセルコマンドを実行する必要があります。control-c

/Users/pnwlover/work/project/json/product.json

私は何を間違えることができましたか?

答え1

curl以下のようにパラメータを並べ替えて、このように動作するようにします。

  curl -X POST -H 'Content-Type:application/json' -H 'Authorization: Bearer 20fa6074-4478-47d3-ds6c-b87be44bd74c' \
    --data @"$file" 'http://localhost:8080/api/v1/purchaseProduct'; 
    

関連情報