You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.4 KiB
Markdown
56 lines
1.4 KiB
Markdown
# go-shellwords
|
|
|
|
[](https://codecov.io/gh/mattn/go-shellwords)
|
|
[](https://travis-ci.org/mattn/go-shellwords)
|
|
[](https://pkg.go.dev/github.com/mattn/go-shellwords)
|
|
[](https://github.com/mattn/go-shellwords/actions)
|
|
|
|
Parse line as shell words.
|
|
|
|
## Usage
|
|
|
|
```go
|
|
args, err := shellwords.Parse("./foo --bar=baz")
|
|
// args should be ["./foo", "--bar=baz"]
|
|
```
|
|
|
|
```go
|
|
envs, args, err := shellwords.ParseWithEnvs("FOO=foo BAR=baz ./foo --bar=baz")
|
|
// envs should be ["FOO=foo", "BAR=baz"]
|
|
// args should be ["./foo", "--bar=baz"]
|
|
```
|
|
|
|
```go
|
|
os.Setenv("FOO", "bar")
|
|
p := shellwords.NewParser()
|
|
p.ParseEnv = true
|
|
args, err := p.Parse("./foo $FOO")
|
|
// args should be ["./foo", "bar"]
|
|
```
|
|
|
|
```go
|
|
p := shellwords.NewParser()
|
|
p.ParseBacktick = true
|
|
args, err := p.Parse("./foo `echo $SHELL`")
|
|
// args should be ["./foo", "/bin/bash"]
|
|
```
|
|
|
|
```go
|
|
shellwords.ParseBacktick = true
|
|
p := shellwords.NewParser()
|
|
args, err := p.Parse("./foo `echo $SHELL`")
|
|
// args should be ["./foo", "/bin/bash"]
|
|
```
|
|
|
|
# Thanks
|
|
|
|
This is based on cpan module [Parse::CommandLine](https://metacpan.org/pod/Parse::CommandLine).
|
|
|
|
# License
|
|
|
|
under the MIT License: http://mattn.mit-license.org/2017
|
|
|
|
# Author
|
|
|
|
Yasuhiro Matsumoto (a.k.a mattn)
|