gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 02:29:51 31 4
gpt4 key购买 nike

我想使用 exec.command() 从 golang 脚本执行类似 docker exec "$(docker-compose ps -q web)"start.sh 的命令.问题是让 $() 中的命令执行。

最佳答案

$() 中的命令由您的 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 为您执行。

关于go - 如何将带有 $() 的命令传递给 golang 中的 exec.command(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35187986/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com