Senden Sie JSON mit Curl aus einem Bash-Skript, wenn der JSON-Pfad als Variable angegeben ist

Senden Sie JSON mit Curl aus einem Bash-Skript, wenn der JSON-Pfad als Variable angegeben ist

Ich kann einfach nicht verstehen, warum alle meine Versuche fehlschlagen. Ich versuche, mit curl eine POST-Anfrage mit JSON an eine bestimmte URL zu senden, wenn ein Pfad zu JSON als Variable definiert ist:

#!/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

Was auch immer ich versucht habe ( "@${JSON_TMP}"oder oder "@$JSON_TMP"oder @"${JSON_TMP}"was auch immer eingegeben habe), es scheint einfach nicht zu funktionieren!

Noch ärgerlicher ist, dass es keine Fehlermeldungen oder ähnliches gibt. Ich führe einfach den Befehl aus und bekomme wieder eine Eingabeaufforderung zurück. Am anderen Ende kann ich sehen, dass kein JSON gesendet wurde.

Antwort1

Folgende Werke:

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

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

Antwort2

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

Versuchen Sie, die Anführungszeichen bei @${JSON_TMP} zu entfernen.

verwandte Informationen