golang 接收命令行管道怎么处理数字?-灵析社区

silennn

package main import ( "bufio" "fmt" "log" "os" ) func main() { fileInfo, _ := os.Stdin.Stat() if (fileInfo.Mode() & os.ModeNamedPipe) != os.ModeNamedPipe { log.Fatal("The command is intended to work with pipes.") } s := bufio.NewScanner(os.Stdin) for s.Scan() { fmt.Println(s.Text()) } } 这个对于 `echo 2 | ./main` 为什么没有输出,怎么应对这个情况

阅读量:181

点赞量:0

问AI
你的代码没有任何错误,我这边能够顺利运行。"echo 2 | ./main" 应该输出 "2"。 如果没有输出,问题可能在于执行环境: 1.检查"./main"是否是你想要执行的二进制文件的正确路径。如果你在一个不同的目录下,你可能需要提供完整的路径。 2.确保"main.go"已经被正确编译。你可以通过运行"go build main.go"来完成这个操作。 3.检查你的"$GOPATH"和"$GOROOT"环境变量是否已经被设置正确。