Je cherche à exécuter une commande shell en Go et à obtenir le résultat sous forme de chaîne de caractères dans mon programme. J'ai vu la commande Code Rosetta version :
package main
import "fmt"
import "exec"
func main() {
cmd, err := exec.Run("/bin/ls", []string{"/bin/ls"}, []string{}, "", exec.DevNull, exec.PassThrough, exec.PassThrough)
if (err != nil) {
fmt.Println(err)
return
}
cmd.Close()
Mais cela ne capture pas le standard out ou err de manière à ce que je puisse y accéder de manière programmatique - ils s'affichent toujours dans les stdout / stderr normaux. J'ai vu que l'utilisation de Pipe en tant que out ou err pourrait aider ailleurs, mais il n'y a pas d'exemple de la façon de le faire. Des idées ?