Wie kann ich mich für eine Anfrage mit Headern in Shell-Skripten kräuseln?

Ich habe versucht, eine CURL-Anweisung wie folgt auszuführen, für die ich die erforderliche Antwort erhalte:

curl -s -POST --header 'Content-Type: application/json' 'http://www.dummy.com/projectname/page_relevance' -d '{"query": "q_string", "results": [{"abstract": "abs_string", "title": "title_string"}, "mode": "value", "cache": true, "source": "value"}'

Aber als ich versuchte, variable Werte an den Parameter "query" zu übergeben, funktionierte die unten erwähnte curl-Anweisung nicht und es wurde eine Fehleranweisung als Antwort festgestellt:

curl -s -POST --header 'Content-Type: application/json' 'http://www.dummy.com/projectname/page_relevance' -d '{"query": "$query_string", "results": [{"abstract": "abs_string", "title": "title_string"}, "mode": "value", "cache": true, "source": "value"}'
ERROR Anweisung:

Not Found [CFN # 0005]

Es klappt

Dies ist die Standardwebseite für diesen Server.

Die Webserver-Software wird ausgeführt, es wurden jedoch noch keine Inhalte hinzugefügt.

Aber ich bin mir sicher, dass die Curl-Anfrage, die ich als zweites mit Variable erstellt habe, der gleichen Curl-Anfrage ähnelt, die ich zuerst ausgeführt habe. Dies wird mit echo getestet, das $ query_string durch den korrekten Wert ersetzt.

Ich habe es auch in einem anderen Ansatz versucht, in dem ich keine Variablen für einzelne Parameter verwendet habe, stattdessen habe ich Folgendes versucht:

a='{"query": "query_value", "results": [{"abstract": "abs_string", "title": "title_string"}, "mode": "value", "cache": true, "source": "value"}'
curl -s -POST --header 'Content-Type: application/json' 'http://www.dummy.com/projectname/page_relevance' -d $a

Ich habe auch versucht, den Wert eines using @ zu ersetze${a}, "$a", '$a'

doch derselbe Fehler wurde beobachtet.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage