io/ioutilパッケージを使ってパイプで繋いだ標準出力から文字列を受け取る
実際のところ
package main import ( "fmt" "io/ioutil" "os" ) func main() { stat, _ := os.Stdin.Stat() if (stat.Mode() & os.ModeCharDevice) == 0 { fmt.Println("data is being piped to stdin") bytes, err := ioutil.ReadAll(os.Stdin) if err != nil { fmt.Printf("We got error on os.Stdin") } else { fmt.Println(string(bytes)) } } else { fmt.Println("No stdin pipe") } }
$ go run samplescript.go No stdin pipe $ echo "hoge" | go run samplescript.go data is being piped to stdin hoge