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'; 
    

관련 정보