2016-02-03 21:23
浏览 305


I want to execute a command like docker exec "$(docker-compose ps -q web)" from golang script using exec.command(). The problem is getting the command inside $() to execute.

图片转代码服务由CSDN问答提供 功能建议

我想执行类似 docker exec“ $(docker-compose ps -q web)”的命令 使用 exec.command()从golang脚本中启动 。 问题是要在 $()内部执行命令。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • doupaimo8288 2016-02-03 21:56

    The command inside of $() is executed and replaced with its output by your shell on the command line (typically bash but can be sh or others). exec.Command is running the program directly, so that replacement isn't happening. This means you need to pass that command into bash so it will interpret and execute the command:

    bash -c "docker exec \"$(docker-compose ps -q web)\""

    Code Example:

    exec.Command("/bin/sh", "-c", "docker exec \"$(docker-compose ps -q web)\"")

    Alternatively, you can run docker-compose ps -q web yourself, get its output and do the substitution instead of having bash do it for you.

    解决 无用
    打赏 举报

相关推荐 更多相似问题