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