GO语言"os/exec"包中"Command"函数的用法及代码示例。
用法:
func Command(name string, arg ...string) *Cmd
命令返回 Cmd 结构以执行具有给定参数的命名程序。
它仅在返回的结构中设置 Path 和 Args。
如果 name 不包含路径分隔符,Command 会尽可能使用 LookPath 将 name 解析为完整路径。否则它直接使用名称作为路径。
返回的 Cmd 的 Args 字段由命令名称后跟 arg 的元素构成,因此 arg 不应包含命令名称本身。例如,命令("echo"、"hello")。 Args[0] 始终是名称,而不是可能解析的路径。
在 Windows 上,进程将整个命令行作为单个字符串接收并进行自己的解析。 Command 使用与使用CommandLineToArgvW 的应用程序兼容的算法(这是最常见的方式)将 Args 组合表示到命令行字符串中。值得注意的例外是 msiexec.exe 和 cmd.exe(以及所有批处理文件),它们具有不同的取消引用算法。在这些或其他类似情况下,您可以自己进行引用并在SysProcAttr CmdLine 中提供完整的命令行,将 Args 留空。
例子:
package main
import (
"bytes"
"fmt"
"log"
"os/exec"
"strings"
)
func main() {
cmd := exec.Command("tr", "a-z", "A-Z")
cmd.Stdin = strings.NewReader("some input")
var out bytes.Buffer
cmd.Stdout = &out
err := cmd.Run()
if err != nil {
log.Fatal(err)
}
fmt.Printf("in all caps: %q\n", out.String())
}
示例(环境):
package main
import (
"log"
"os"
"os/exec"
)
func main() {
cmd := exec.Command("prog")
cmd.Env = append(os.Environ(),
"FOO=duplicate_value", // ignored
"FOO=actual_value", // this value is used
)
if err := cmd.Run(); err != nil {
log.Fatal(err)
}
}
相关用法
- GO CommandContext用法及代码示例
- GO CommentMap用法及代码示例
- GO Compare用法及代码示例
- GO CopyN用法及代码示例
- GO CopyBuffer用法及代码示例
- GO ContainsRune用法及代码示例
- GO Copysign用法及代码示例
- GO Cosh用法及代码示例
- GO Config用法及代码示例
- GO Count用法及代码示例
- GO ContainsAny用法及代码示例
- GO Cos用法及代码示例
- GO Conn.ExecContext用法及代码示例
- GO Copy用法及代码示例
- GO Contains用法及代码示例
- GO Chmod用法及代码示例
- GO Cmd.Start用法及代码示例
- GO CanBackquote用法及代码示例
- GO CreateTemp用法及代码示例
- GO Cut用法及代码示例
注:本文由纯净天空筛选整理自golang.google.cn大神的英文原创作品 Command。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。