发布网友 发布时间:2022-04-26 10:34
共1个回答
热心网友 时间:2022-06-27 10:10
管道和重定向输入的数据都是通过标准输入传入程序的, os.Stdin 即为标准输入。
可以通过 golang.org/x/crypto/ssh/terminal 的 terminal.IsTerminal(0) 判断是否是管道和重定向输入,为什么是 0 :因为标准输入的文件描述符是 0
为 true 时表示是交互式环境
为 false 时是我们要的场景
首先需要安装 golang.org/x/crypto/ssh/terminal 这个包(安装时需要 VPN 的辅助):
go get golang.org/x/crypto/ssh/terminal也可以使用 github.com/mattn/go-isatty 这个包:
!isatty.IsTerminal(os.Stdin.Fd())下面是示例代码:
package mainimport (测试效果:
$ echo "hello" > hello.txt