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")

Tags:

Executable

Go