You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将JSON文件内容拼接进Shell命令的字符串参数中?

解决shell命令读取JSON文件拼接参数的问题

错误原因

你之前的写法mycommand --environment '{"Variables":' + cat vars.json + '}'在shell里不成立,原因如下:

  • shell中字符串拼接不需要+号,直接连接内容即可
  • cat vars.json会被当作独立命令而非插入到参数字符串里,导致shell把+、cat、vars.json这些都当成mycommand的额外参数,因此出现未知选项的错误

正确实现方式

方法1:直接用命令替换拼接字符串

使用$(cat vars.json)获取文件内容,嵌入到参数字符串中:

mycommand --environment '{"Variables":'"$(cat vars.json)"'}'

引号逻辑说明:

  • 单引号包裹{"Variables":部分(单引号内的内容不会被shell解析)
  • "$(cat vars.json)"用双引号包裹命令替换结果,确保内容作为整体传递
  • 最后用单引号闭合}部分

方法2:用printf构造完整参数

先通过printf生成完整的JSON字符串,再传递给命令:

mycommand --environment "$(printf '{"Variables":%s}' "$(cat vars.json)")"

这种方式更直观,适合复杂的字符串拼接场景。

验证效果

如果vars.json内容是{"var1":"new_val1","var2":"new_val2"},上述命令最终会生成和原命令完全一致的参数:
{"Variables":{"var1":"new_val1","var2":"new_val2"}}

内容的提问来源于stack exchange,提问作者ServerBloke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 03:58:11