用golang实现linux的tee命令
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.")
}
f, err := os.OpenFile(os.Args[1], os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0755)
if err != nil {
log.Fatalln(err)
}
defer f.Close()
s := bufio.NewScanner(os.Stdin)
for s.Scan() {
data := s.Text() + "\n"
fmt.Print(data)
f.WriteString(data)
}
}
如果这篇文章对你有所帮助,可以通过下边的“打赏”功能进行小额的打赏。
本网站部分内容来源于互联网,如有侵犯版权请来信告知,我们将立即处理。