0
点赞
收藏
分享

微信扫一扫

go语言调用另一个可运行的go程序并以命令行传参数

ZMXQQ233 2022-07-14 阅读 162


1、调用别的程序文件(exec.Command)

package main

import (
"fmt"
"os/exec"
)

func checkError(err error){
if err != nil{
panic(err)
}
}
func main(){
cmd := exec.Command("./../other/other","hello","world")
data,err := cmd.Output()
checkError(err)
fmt.Println(string(data))
}

2、命令行传参(os.Args)

package main

import (
"fmt"
"os"
)

func main(){
fmt.Println("命令行的参数数目:",len(os.Args))
for i,v := range os.Args{
if i==0 {
continue
}
fmt.Printf("args[%v]=%v\n",i,v)
}
}

3、结合效果:

一个文件夹下2个文件夹,other文件夹中有可运行文件

go语言调用另一个可运行的go程序并以命令行传参数_linux


go语言调用另一个可运行的go程序并以命令行传参数_命令行_02

4、补充学习

exec.Command可以调用其他类型的语言写的exe文件

例如:linux的ls命令

go语言调用另一个可运行的go程序并以命令行传参数_ls命令_03


例如:linux 的tr命令

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
if err := cmd.Run(); err != nil {
log.Fatal(err)

}
fmt.Printf("in all caps: %q\n", out.String())
}

go语言调用另一个可运行的go程序并以命令行传参数_linux_04

5、更多参考的学习资料

os/exec 包详解​​​​

Go标准库os/exec使用指南


举报

相关推荐

0 条评论