GO言語でシェルコマンドを実行する方法です。
実際のところ
この例ではコマンドを実行し結果を得ています。
結果は"[]byte"型で返ってくるため、必要おうじてstring型にキャストしてやる必要があります。
package main import ( "fmt" "log" "os/exec" ) func main() { var out []byte out, err := exec.Command("ls","-la").Output() if err != nil { log.Fatal(err) } fmt.Printf("Result:%s\n", string(out)) }
実行すると、こんな感じ。
$ go run curlexe.go | head -n 5 Result:total 8744 drwxr-xr-x 45 shuzo_kino staff 1530 4 10 23:44 . drwxr-xr-x+ 153 shuzo_kino staff 5202 4 4 13:02 .. -rw-r--r--@ 1 shuzo_kino staff 6148 10 7 2016 .DS_Store -rw-r--r-- 1 shuzo_kino staff 485 4 1 2015 1.txt
単に実行したいだけの場合、Run()をやってやるだけで良いです。
内部的にはStartとWaitを読み出してるだけのようです。