Name: shellwords
Owner: Buildkite
Description: Splits command strings according to POSIX/Batch semantics
Created: 2018-03-15 05:22:22.0
Updated: 2018-03-23 10:41:53.0
Pushed: 2018-03-16 00:15:29.0
Size: 13
Language: Go
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
A golang library for splitting command-line strings into words like a Posix or Windows shell would.
et -u github.com/buildkite/shellwords
age main
rt (
ithub.com/buildkite/shellwords"
mt"
main() {
rds := shellwords.Split(`/usr/bin/bash -e -c "llamas are the \"best\" && echo 'alpacas'"`)
r _, word := range words {
fmt.Println(word)
utputs:
usr/bin/bash
e
c
lamas are the "best" && echo 'alpacas'
Previously we were using https://github.com/mattn/go-shellwords, but it lacked support for Windows quoting and escaping conventions, specifically backslashed paths. It also supports things like env expansion and command execution, which made me very nervous, so I decided to write a simpler lexer that just addressed the splitting problem.
Other alternatives are https://github.com/flynn-archive/go-shlex and https://github.com/kballard/go-shellquote, of which the latter is probably closest in spirit to this library.
Licensed under MIT license, in LICENSE
.