How to run a shell command in a specific folder

后端 未结 1 861
情话喂你
情话喂你 2021-02-03 21:12

I can use this out, err := exec.Command(\"git\", \"log\").Output() to get an output of the command which will run in the same path as the executable location.

1条回答
  •  轻奢々
    轻奢々 (楼主)
    2021-02-03 21:51

    exec.Command() returns you a value of type *exec.Cmd. Cmd is a struct and has a Dir field:

    // Dir specifies the working directory of the command.
    // If Dir is the empty string, Run runs the command in the
    // calling process's current directory.
    Dir string
    

    So simply set it before calling Cmd.Output():

    cmd:= exec.Command("git", "log")
    cmd.Dir = "your/intended/working/directory"
    out, err := cmd.Output()
    

    Also note that this is specific to git command; git allows you to pass the path using the -C flag, so you may also do what you want like this:

    out, err := exec.Command("git", "-C", "your/intended/working/directory", "log").
        Output()
    

    0 讨论(0)
提交回复
热议问题