1
Ich habe ein Problem mit exec.Command mit .Dir zugewiesen. Wenn ich einen Befehl von der App aus starte, erhalte ich einen Fehler. aber wenn ich es von der Shell aus starte, funktioniert derselbe Befehl gut.Golang exec.Command in verschiedenen Ordner
command := exec.Command("git", "rev-parse", "--verify", "tags/v1.0.0^{commit}")
command.Dir = "sub/subdir"
out, err := command.CombinedOutput()
fmt.Printf("Executed command [%s] %s\nErrorCode = %s\nOutput = %s\n", command.Dir, command.Args, err, out)
Der Ausgang:
Executed command [sub/subdir] [git rev-parse --verify tags/v1.0.0^{commit}]
ErrorCode = exit status 128
Output = fatal: Needed a single revision
Shell-Befehl:
$ (cd sub/subdir; git rev-parse --verify tags/v1.0.0^{commit})
c1f3b8707ac001dab875781def3c729e3ed6de2c
Was habe ich falsch gemacht?
Oder noch besser, versuchen Sie mit ['filepath.Abs'] (https://golang.org/pkg/path/filepath/#Abs) den absoluten Pfad zu erstellen. Drucken Sie diesen Wert, um sicherzustellen, dass Sie den erwarteten Pfad verwenden. – cd1
Es hat nicht geholfen - das gleiche Ergebnis. – Michael