What should I do if I want to type a command from the Go language?
Ruby does it just by enclosing it in the back quarter.
go
http://golang.org/pkg/os/exec/ #example_Cmd_Output
package main
import(
"fmt"
"log"
"os/exec"
)
funcmain(){
out,err: = exec.Command("date").Output()
if err!=nil{
log.Fatal(err)
}
fmt.Printf("The date is %s\n", out)
}
http://golang.org/pkg/os/exec/
Depending on the purpose, there are several methods.
Ruby backquotes are performed through the shell.Therefore,
`foo-flag`
is actually
$SHELL-c'foo-flag'
Runs as .That is, $SHELL
parses the argument and divides it into foo
and -flag
.
Golang does not have instructions to execute commands through the shell, such as system(3).As erukiti wrote,
exec.Command("foo", "-flag")
Create a Cmd object in the form to get standard output from Output, or
just like ruby's backquote.exec.Command(os.Getenv("SHELL"), "-c", "foo-flag")
By doing so, I think you will get the expected action.
If you want to split the string into an array that passes to exec.Command
, you can use go-shellwords.
© 2024 OneMinuteCode. All rights reserved.