// //

【Golang】练习 tailf 简单模拟

代码如下

package main

import (
	"bufio"
	"flag"
	"fmt"
	"io"
	"log"
	"os"
)

//命令行参数解析
func FlagMsg() string {
	//定义命令行参数方式1
	var (
		follow string
	)
	flag.StringVar(&follow, "f", "", "filepath")

	//解析命令行参数
	flag.Parse()
	return follow
}

func main() {
	filepath := FlagMsg()
	file, err := os.Open(filepath)
	if err != nil {
		log.Fatalf("Open file fail:%v", err)
	}
	defer file.Close()
	reader := bufio.NewReader(file)
	for {
		line, err := reader.ReadString('\n')
		if err != nil {
			if err == io.EOF {
				// time.Sleep(1 * time.Second)
				continue
			} else {
				break
			}
		}
		fmt.Println(string(line))
	}
}

使用命令:

go run main.go -f filepath
posted @ 2020-12-06 16:09  易波叶平  阅读(103)  评论(0编辑  收藏  举报