使用的exec包
函数: exec.Command
执行单个命令 ls -l ,exec.Command很容易执行,但是需要执行ls -l|wc -l 这样的命令要怎么编写
golang中,需要执行两个命令ls -l 和 wc -l 但是这两个命令是有关系的,只要定义好两个命令的输入输出,就可以完成.
1. 定义两个命令行:
var commands []*exec.Cmd
commands = append(commands, exec.Command("ls", "-l"))
commands = append(commands, exec.Command("wc", "-l"))
2. 定义输入输出关系: 除了第一个命令,其他的命令都要设置关系, 最后输出也需要单独定义:
for i:= 1;i < len(commands);i++{
commands[i].Stdin, _ = commands[i-1].StdoutPipe()
}
commands[len(commands)-1].Stdout = os.Stdout
3.开启除第一个命令之外,其它命令:
for i:=1;i<len(commands);i++{
err := commands[i].Start()
if err != nil {
panic(err)
}
}
4. 第一命令开始执行:
commands[0].Run()
5.等候其他命令执行结束:
for i:=1;i<len(commands);i++{
err := commands[i].Wait()
if err != nil {
panic(err)
}
}