golang 执行命令行
时间: 2023-07-26 22:40:55 浏览: 125
在 Golang 中,可以使用 `os/exec` 包来执行命令行。具体步骤为:
1. 创建一个 `*exec.Cmd` 对象,用于描述将要执行的命令行。
2. 配置命令行参数和环境变量。
3. 执行命令行,并获取输出结果。
以下是一个简单的示例:
```go
package main
import (
"fmt"
"os/exec"
)
func main() {
// 创建 cmd 对象
cmd := exec.Command("ls", "-l")
// 执行命令行并获取输出结果
out, err := cmd.Output()
if err != nil {
fmt.Println("执行命令行失败:", err)
return
}
// 输出命令行的输出结果
fmt.Println(string(out))
}
```
以上代码执行 `ls -l` 命令并输出结果。当然,`os/exec` 包还提供了更多功能,比如实时输出命令行的输出、设置超时等。具体可以参考官方文档:https://golang.org/pkg/os/exec/
相关问题
golang 命令行参数 -x --y
可以使用 `flag` 包来解析命令行参数,其中 `-x` 可以使用 `flag.BoolVar()` 方法来解析, `--y` 可以使用 `flag.StringVar()` 方法来解析。示例代码如下:
```go
package main
import (
"flag"
"fmt"
)
func main() {
var x bool
var y string
flag.BoolVar(&x, "x", false, "usage of x")
flag.StringVar(&y, "y", "", "usage of y")
flag.Parse()
fmt.Println("x:", x)
fmt.Println("y:", y)
}
```
在命令行中执行 `go run main.go -x --y=value`,输出结果如下:
```
x: true
y: value
```
golang 命令行参数,形式 -R, --recursive=false
可以使用 `flag` 包来解析命令行参数,其中 `-R` 可以使用 `flag.BoolVar()` 方法来解析, `--recursive=false` 可以使用 `flag.Bool()` 方法来解析。示例代码如下:
```go
package main
import (
"flag"
"fmt"
)
func main() {
var recursive bool
flag.BoolVar(&recursive, "R", false, "usage of R")
flag.Bool("recursive", false, "usage of recursive")
flag.Parse()
fmt.Println("R:", recursive)
fmt.Println("recursive:", flag.Lookup("recursive").Value)
}
```
在命令行中执行 `go run main.go -R --recursive=true`,输出结果如下:
```
R: true
recursive: true
```
需要注意的是,如果 `--recursive=true` 中的 `=` 后面没有值,则会解析成 `true`。如果想要指定为 `false`,则可以使用 `--recursive=false`。同时,`--recursive` 可以通过 `flag.Lookup()` 方法获取到 `flag.Flag` 类型的值,从而获取到其默认值。
阅读全文