原地址:https://segmentfault.com/a/1190000019613407
管道操作就是将上一指令的输出,作为下一指令的输入
//先取程序的标准输入属性信息
info, err := os.Stdin.Stat()
if err != nil {
return errors.Annotate(err, "stdin stat failed")
}
// 判断标准输入设备属性 os.ModeCharDevice 是否设置
// 同时判断是否有数据输入
if (info.Mode()&os.ModeCharDevice) == os.ModeCharDevice && info.Size() > 0 {
bytes, err := ioutil.ReadAll(os.Stdin)
if err != nil {
return errors.Annotate(err, "stdin read failed")
}
//TODO...
}