package main
import (
"flag"
"fmt"
"os"
)
func main() {
var verbose bool
flag.BoolVar(&verbose, "verbose", false, "是否输出详细信息")
subCommand := flag.NewFlagSet(os.Args[0], flag.ExitOnError)
createCmd := flag.NewFlagSet("create", flag.ExitOnError)
var createFileName string
createCmd.StringVar(&createFileName, "name", "", "创建文件的名称")
deleteCmd := flag.NewFlagSet("delete", flag.ExitOnError)
var deleteFileName string
deleteCmd.StringVar(&deleteFileName, "name", "", "删除文件的名称")
if len(os.Args) < 2 {
fmt.Println("请指定子命令,如 create 或 delete")
os.Exit(1)
}
switch os.Args[1] {
case "create":
createCmd.Parse(os.Args[2:])
if createFileName == "" {
fmt.Println("create 子命令需要指定 -name 参数")
os.Exit(1)
}
handleCreate(verbose, createFileName)
case "delete":
deleteCmd.Parse(os.Args[2:])
if deleteFileName == "" {
fmt.Println("delete 子命令需要指定 -name 参数")
os.Exit(1)
}
handleDelete(verbose, deleteFileName)
default:
fmt.Printf("未知的子命令 %s\n", os.Args[1])
os.Exit(1)
}
}
func handleCreate(verbose bool, name string) {
if verbose {
fmt.Printf("正在创建文件 %s\n", name)
}
// 实际创建文件逻辑
}
func handleDelete(verbose bool, name string) {
if verbose {
fmt.Printf("正在删除文件 %s\n", name)
}
// 实际删除文件逻辑
}