我想docker exec "$(docker-compose ps -q web)" start.sh使用exec.command(). 问题是让里面的命令$()执行。
1 回答
牛魔王的故事
TA贡献1830条经验 获得超3个赞
里面的命令在$()
命令行上由你的 shell 执行并替换为它的输出(通常bash
但可以是sh
或其他)。exec.Command 直接运行程序,因此不会发生替换。这意味着您需要将该命令传递给 bash,以便它解释并执行该命令:
bash -c "docker exec \"$(docker-compose ps -q web)\" start.sh"
代码示例:
exec.Command("/bin/sh", "-c", "docker exec \"$(docker-compose ps -q web)\" start.sh")
或者,您可以docker-compose ps -q web
自己运行,获取其输出并进行替换,而不是让 bash 为您完成。
- 1 回答
- 0 关注
- 136 浏览
添加回答
举报
0/150
提交
取消