我正在编写一个python脚本,它将参数传递给Docker容器中的shell脚本。我使用这个GoWebhook工具(https://github.com/adnanh/webhook)实现了这一点。到目前为止,我已经成功地通过requests模块将简单参数传递给shell脚本。然而,我遇到了一个障碍
我的工具的目的是触发一个dna组装程序,该程序有许多可选参数,用户可以对这些参数进行调整。目前,我一直在触发webhook,如下所示:
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脚本中,我正在分析参数,然后尝试执行以下命令:
nohup Trinity --left "${FWD}" --right "${REV}" "${ASSEM_ARGS}" \
--output data/"${OUT}"/trinity &
正如您在示例代码中看到的那样,我尝试了对双引号进行转义。在阅读了其他堆栈溢出的答案后,我尝试了不同数量的反斜杠。我尝试过简单地对f字符串使用单引号,并在字符串中使用双引号。这些方法都不起作用。无论我做什么,传递到shell脚本的参数中都存在反斜杠,这显然是有问题的
另外,我已经用我希望通过的形式的参数单独测试了shell脚本,它工作得很好,所以问题似乎不在这方面
谢谢你的帮助
如果有人来这里寻找答案,我从来没有找到过!我决定将信息存储在系统中所有容器都可以访问的yaml文件中。我仍然非常想知道今后如何解决这个问题
相关问题 更多 >
编程相关推荐