How to execute a shell built-in command
Alternatively, if it is a built in command that doesn't need parameters you could do something like the following:
package main
import (
"fmt"
"log"
"os/exec"
)
func main() {
out, err := exec.Command("uuidgen").Output()
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s", out)
}
This would print out a unique ID like the following : 4cdb277e-3c25-48ef-a367-ba734ce407c1 just like calling it directly from the command line.
Just like that article says, "command" is a shell built-in. You can do this natively in go via exec.LookPath
.
If you must, you can either use the system which
binary, or you can execute command
from within a shell,
exec.Command("/bin/bash", "-c", "command -v foo")