为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 golang 中将带有 $() 的命令传递给 exec.command()

如何在 golang 中将带有 $() 的命令传递给 exec.command()

Go
慕的地8271018 2021-12-07 18:33:05
我想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 为您完成。


查看完整回答
反对 回复 2021-12-07
  • 1 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信