Ich versuche, einen JSON in BASH zu erstellen, wobei eines der Felder auf dem Ergebnis eines früheren Befehls basiert
BIN=$(cat next_entry)
OUTDIR="/tmp/cpupower/${BIN}"
echo $OUTDIR
JSON="'"'{"hostname": "localhost", "outdir": "${OUTDIR}", "port": 20400, "size": 100000}'"'"
echo $JSON
Das obige Skript gibt bei Ausführung Folgendes zurück:
/tmp/cpupower/0
, port: 20400, size: 100000}': /tmp/cpupower/0
Wie kann ich Variablen in diesen Zeichenfolgen mit mehreren Anführungszeichen richtig ersetzen?
OUTDIRVariable im Wert vonJSONund in den Anführungszeichen erweitert zu sein scheint"port"und"size"unerklärlicherweise nicht vorhanden ist.) (2) Es scheint mir offensichtlich, dass dieBINVariable einen Wagenrücklauf enthält (aus dernext_entryDatei); und doch ging das Problem anscheinend weg, ohne dass dieses Problem angesprochen wurde.