おんなじファイルしか開けなかったり、常にラスト5行しか表示できないのは寂しいので、
コマンドライン引数を処理できるようにする。flag
というパッケージを使えばよいらしい。
// コマンドライン処理 nFlag := flag.Int("n", 5, "Line numbers for display") flag.Parse() if flag.NArg() != 1 { fmt.Println("Err") return } content, err := ioutil.ReadFile(flag.Arg(0)) if err != nil { log.Fatal(err) }
これでtail -n 5 filename
みたいな感じのコマンドラインには対応出来ているみたい。
ファイル名が指定されなかったときはエラーとして、簡単なメッセージだけで returnで終わっちゃってるんだけど、簡単に異常終了させる方法がたぶんあるはず。
まあ、ファイル名が指定されなかったらSTDINを処理するのが真っ当なんだけども、それは後回し。