Tôi đang cố gắng tạo JSON trong BASH trong đó một trong các trường dựa trên kết quả của lệnh trước đó
BIN=$(cat next_entry)
OUTDIR="/tmp/cpupower/${BIN}"
echo $OUTDIR
JSON="'"'{"hostname": "localhost", "outdir": "${OUTDIR}", "port": 20400, "size": 100000}'"'"
echo $JSON
Kịch bản trên khi được thực thi, trả về:
/tmp/cpupower/0
, port: 20400, size: 100000}': /tmp/cpupower/0
Làm thế nào tôi có thể thay thế chính xác các biến bên trong các chuỗi đa trích dẫn này?
OUTDIR
biến dường như được mở rộng vào giá trị củaJSON
, và dấu ngoặc kép quanh"port"
và"size"
là hiểu sao vắng mặt.) (2) Có vẻ như rõ ràng với tôi rằng cácBIN
biến là nhận được một vận chuyển trở lại trong nó (từnext_entry
tập tin); và vấn đề rõ ràng đã biến mất mà không giải quyết được vấn đề đó.