这是一个用于执行和管理命令行操作的 Go 库,具有强大的错误处理和输出管理功能。
概述:
- 简化 Go 应用中的命令执行。
- 提供运行命令、捕获输出和有效管理错误的函数,使用结构化错误类型
CommandError
。 - 包含可配置的
Config
结构体,可自定义执行设置,如启用命令输出打印和指定默认执行目录。
安装:
运行go get -u github.com/kgs19/cmdx
进行安装。
使用:
- 运行命令:使用
RunCommandPrintOutput
执行命令并打印输出,如if err := cmdx.RunCommandPrintOutput("ls", "-l"); err!= nil { log.Fatalf("Command failed: %v", err) }
。 - 处理
CommandError
错误:如果命令失败,会返回CommandError
实例,可获取退出码、错误消息和执行目录等详细信息,如err := cmdx.RunCommandPrintOutput("ls", "/non_existent_file.txt"); var cmdErr *cmdx.CommandError; if errors.As(err, &cmdErr) { fmt.Printf("Command failed with exit code %d\n", cmdErr.ExitCode); fmt.Printf("Error message: %s\n", cmdErr.ErrorMsg); fmt.Printf("Execution directory: %s\n", cmdErr.CmdDir) }
。 - 使用示例:在examples目录中查看更多使用示例。
配置:
通过Config
结构体可配置设置,如PrintCommandEnabled
(设置为 true 可在执行前打印每个命令,可通过环境变量CMDX_PRINT_COMMAND_ENABLED
控制)、CommandDir
(指定命令执行目录,可通过环境变量CMDX_COMMAND_DIR
控制)。示例包括example custom config和example env variable。
贡献:欢迎贡献,可提交问题或创建拉取请求。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。