我正在尝试在BASH中创建JSON,其中一个字段是基于较早命令的结果的
BIN=$(cat next_entry)
OUTDIR="/tmp/cpupower/${BIN}"
echo $OUTDIR
JSON="'"'{"hostname": "localhost", "outdir": "${OUTDIR}", "port": 20400, "size": 100000}'"'"
echo $JSON
上面的脚本在执行时返回:
/tmp/cpupower/0
, port: 20400, size: 100000}': /tmp/cpupower/0
如何正确替换这些多引号字符串中的变量?
JSON=\''{"hostname": "localhost", "outdir": "'"$OUTDIR"'", "port": 20400, "size": 100000}'\'
那是因为的扩展名不再是单引号了$OUTDIR
。我们确实将扩展名放在双引号中是很好的衡量标准,即使对于标量变量赋值来说,它并非绝对必要。
当你传递的$JSON
变量echo
,报价是必要的,虽然禁用拆分+水珠运营商。最好避免echo
使用任意数据:
printf '%s\n' "$JSON"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句