buildkite/shellwords

GitHub: buildkite/shellwords

一个简洁的 Go 库,按照 POSIX 和 Windows Batch 语义将命令行字符串安全地分割为单词,不支持命令执行或变量展开。

Stars: 19 | Forks: 3

# Shellwords 一个 golang 库,用于像 Posix 或 Windows shell 那样将命令行字符串分割成单词。 ## 安装 ``` go get -u github.com/buildkite/shellwords ``` ## 用法 ``` package main import ( "github.com/buildkite/shellwords" "fmt" ) func main() { words := shellwords.Split(`/usr/bin/bash -e -c "llamas are the \"best\" && echo 'alpacas'"`) for _, word := range words { fmt.Println(word) } } // Outputs: // /usr/bin/bash // -e // -c // llamas are the "best" && echo 'alpacas' ``` ## 替代方案 以前我们使用的是 https://github.com/mattn/go-shellwords,但它不支持 Windows 的引号和转义约定,特别是反斜杠路径。它还支持诸如环境变量扩展和命令执行等功能,这让我感到非常不安,因此我决定编写一个更简单的词法分析器,专门用于解决分割问题。 其他替代方案包括 https://github.com/flynn-archive/go-shlex 和 https://github.com/kballard/go-shellquote,其中后者在理念上可能与本库最为接近。 ## 许可证 采用 MIT 许可证授权,详情请参阅 `LICENSE`。
标签:EVTX分析, Go, Ruby工具, 命令行解析, 字符串处理, 开发组件库, 日志审计