JSON 경로가 변수로 제공된 경우 bash 스크립트에서 컬을 사용하여 JSON 보내기

JSON 경로가 변수로 제공된 경우 bash 스크립트에서 컬을 사용하여 JSON 보내기

왜 모든 시도가 실패했는지 이해할 수 없습니다. JSON에 대한 경로가 변수로 정의된 경우 컬을 사용하여 JSON과 함께 POST 요청을 특정 URL로 보내려고 합니다.

#!/bin/sh

JSON_TMP=/home/aaa/jsons/make_6h_from_1h.json
curl -X POST -H "Content-Type: application/json" --data-binary "@${JSON_TMP}" http://some-url

내가 시도한 것(넣거나 "@${JSON_TMP}"또는 "@$JSON_TMP"기타 @"${JSON_TMP}"무엇이든)이 작동하지 않는 것 같습니다!

더 짜증나는 점은 오류 메시지 등이 없다는 것입니다. 명령을 실행하고 다시 프롬프트가 표시됩니다. 다른 쪽에서는 json이 전송되지 않은 것을 볼 수 있습니다.

답변1

다음은 작동합니다:

body_arg=(--data-binary @${filePath})

curl -X POST -H "Content-Type: application/json" "${body_arg[@]}"  http://some-url

답변2

curl -X POST -i -H "Accept: application/json" -H "Content-Type: application/json" --data-binary --data-binary @${JSON_TMP} http://some-url

@${JSON_TMP}에서 큰따옴표를 제거해 보세요.

관련 정보