Go命令行工具开发

约 2 分钟读完

Go命令行工具开发

标准库 flag

import "flag"

func main() {
    target := flag.String("t", "", "target host")
    port := flag.Int("p", 80, "target port")
    verbose := flag.Bool("v", false, "verbose output")
    flag.Parse()

    fmt.Printf("Target: %s:%d, verbose: %v\n", *target, *port, *verbose)
}

Cobra 框架

Cobra 是 Go 生态中最流行的 CLI 框架,被 kubectl、docker 等工具使用。

var rootCmd = &cobra.Command{
    Use:   "mytool",
    Short: "A security tool",
}

var scanCmd = &cobra.Command{
    Use:   "scan",
    Short: "Scan target",
    Run: func(cmd *cobra.Command, args []string) {
        // 扫描逻辑
    },
}

func init() {
    rootCmd.AddCommand(scanCmd)
    scanCmd.Flags().StringP("target", "t", "", "target host")
}

进度条与输出

使用 progressbar 库显示扫描进度,使用彩色输出提升可读性。

总结

一个好的命令行工具应该有清晰的帮助文档、合理的默认值和友好的错误提示。Cobra 框架可以快速构建专业的 CLI 工具。

← Go安全工具开发 Go加密与编码实现 →