kballard/go-shellquote

Go utilities for performing shell-like word splitting/joining

Go

222

17 commits

updated Mar 23, 2024

See the code

README

PACKAGE

package shellquote
    import "github.com/kballard/go-shellquote"

    Shellquote provides utilities for joining/splitting strings using sh's
    word-splitting rules.

VARIABLES

var (
    UnterminatedSingleQuoteError = errors.New("Unterminated single-quoted string")
    UnterminatedDoubleQuoteError = errors.New("Unterminated double-quoted string")
    UnterminatedEscapeError      = errors.New("Unterminated backslash-escape")
)


FUNCTIONS

func Join(args ...string) string
    Join quotes each argument and joins them with a space. If passed to
    /bin/sh, the resulting string will be split back into the original
    arguments.

func Split(input string) (words []string, err error)
    Split splits a string according to /bin/sh's word-splitting rules. It
    supports backslash-escapes, single-quotes, and double-quotes. Notably it
    does not support the $'' style of quoting. It also doesn't attempt to
    perform any other sort of expansion, including brace expansion, shell
    expansion, or pathname expansion.

    If the given input has an unterminated quoted string or ends in a
    backslash-escape, one of UnterminatedSingleQuoteError,
    UnterminatedDoubleQuoteError, or UnterminatedEscapeError is returned.


Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

Significant stargazers

Ilya Dmitrichenko

691 followers · starred Jul 2018

Joe Beda

1,322 followers · starred Nov 2014

Ben Hoyt

1,070 followers · starred Aug 2022

Kevin Woo

37 followers · starred Jan 2022

kballard/go-shellquote

Go utilities for performing shell-like word splitting/joining

Go

222

17 commits

updated Mar 23, 2024

See the code

README

PACKAGE

package shellquote
    import "github.com/kballard/go-shellquote"

    Shellquote provides utilities for joining/splitting strings using sh's
    word-splitting rules.

VARIABLES

var (
    UnterminatedSingleQuoteError = errors.New("Unterminated single-quoted string")
    UnterminatedDoubleQuoteError = errors.New("Unterminated double-quoted string")
    UnterminatedEscapeError      = errors.New("Unterminated backslash-escape")
)


FUNCTIONS

func Join(args ...string) string
    Join quotes each argument and joins them with a space. If passed to
    /bin/sh, the resulting string will be split back into the original
    arguments.

func Split(input string) (words []string, err error)
    Split splits a string according to /bin/sh's word-splitting rules. It
    supports backslash-escapes, single-quotes, and double-quotes. Notably it
    does not support the $'' style of quoting. It also doesn't attempt to
    perform any other sort of expansion, including brace expansion, shell
    expansion, or pathname expansion.

    If the given input has an unterminated quoted string or ends in a
    backslash-escape, one of UnterminatedSingleQuoteError,
    UnterminatedDoubleQuoteError, or UnterminatedEscapeError is returned.


Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

Significant stargazers

Ilya Dmitrichenko

691 followers · starred Jul 2018

Joe Beda

1,322 followers · starred Nov 2014

Ben Hoyt

1,070 followers · starred Aug 2022

Kevin Woo

37 followers · starred Jan 2022