首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将json有效负载中的带引号的参数传递给shell脚本

将json有效负载中的带引号的参数传递给shell脚本
EN

Stack Overflow用户
提问于 2020-06-11 08:27:54
回答 1查看 212关注 0票数 0

我正在开发一个python脚本,它将参数传递给位于Docker容器中的shell脚本。我正在使用这个Go webhook工具(https://github.com/adnanh/webhook)来实现这一点。到目前为止,我已经成功地通过request模块将简单的参数传递给了我的shell脚本。然而,我遇到了一个障碍。

我的工具的目的是触发一个dna组装程序,该程序有许多可选的参数,可以由用户调整。目前,我已经像这样触发了webhook:

代码语言:javascript
运行
复制
def trigger_assembler(out, assem_opts):
    id = "assemble"
    payload = {"FWD": f"-f data/{out}/R1.fq", "REV": f"-r data/{out}/R2.fq", "OUT": f"-o {out}",
                "OPT": f'-p \" {assem_opts} \"'}

    try:
        r = requests.post(f"http://0.0.0.0:9000/hooks/{id}", json=payload)
        r.raise_for_status()
    except requests.exceptions.RequestException as e:  # This is the correct syntax
        raise SystemExit(e)

在shell脚本中,我解析了参数,然后尝试执行以下命令:

代码语言:javascript
运行
复制
   nohup Trinity --left "${FWD}" --right "${REV}" "${ASSEM_ARGS}" \
    --output data/"${OUT}"/trinity &

正如您在示例代码中看到的,我尝试转义双引号。在阅读了其他堆栈溢出答案后,我尝试了各种数量的反斜杠。我尝试过简单地对f字符串使用单引号,并在字符串中使用双引号。这些方法都没有奏效。无论我做什么,在传递给我的shell脚本的参数中都存在一个反斜杠,这显然是有问题的。

此外,我已经用我希望通过的形式的参数单独测试了shell脚本,它工作得很好,所以问题似乎不在这一端。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-06-16 06:34:14

如果有人来这里寻找答案,我从来没有找到过!我决定将信息存储在系统中的所有容器都可以访问的yaml文件中。我仍然非常想知道将来如何解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62315225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档