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?
OUTDIR
Variable im Wert vonJSON
und in den Anführungszeichen erweitert zu sein scheint"port"
und"size"
unerklärlicherweise nicht vorhanden ist.) (2) Es scheint mir offensichtlich, dass dieBIN
Variable einen Wagenrücklauf enthält (aus dernext_entry
Datei); und doch ging das Problem anscheinend weg, ohne dass dieses Problem angesprochen wurde.