I came across a question on here relating to arguments being passed to Go's exec.Command
function, and I was wondering if there was a way do pass these arguments dynamically? Here's some sample code from sed question:
package main
import "os/exec"
func main() {
app := "echo"
//app := "buah"
arg0 := "-e"
arg1 := "Hello world"
arg2 := "\n\tfrom"
arg3 := "golang"
cmd := exec.Command(app, arg0, arg1, arg2, arg3)
out, err := cmd.Output()
if err != nil {
println(err.Error())
return
}
print(string(out))
}
So as you can see each arg is defined above as arg0
, arg1
, arg2
and arg3
. They are passed into the Command
function along with the actual command to run, in this case, the app
var.
What if I had an array of arguments that always perhaps had an indeterministic count that I wanted to pass through. Is this possible?
Like this:
args := []string{"what", "ever", "you", "like"}
cmd := exec.Command(app, args...)
Have a look at the language and tutorial on golang.org.