1. package main;
  2.  
  3. import (
  4. "os/exec"
  5. "fmt"
  6. "io/ioutil"
  7. "bytes"
  8. )
  9.  
  10. func main() {
  11. //在环境变量path中查找可执行二进制文件
  12. //返回完整路径或者相对于当前目录的一个相对路径
  13. file, _ := exec.LookPath("go");
  14. fmt.Println(file);
  15.  
  16. //返回一个cmd
  17. cmd := exec.Command("go", "version");
  18. //执行命令,并返回标准输出和错误输出
  19. out, _ := cmd.CombinedOutput();
  20. fmt.Println(string(out));
  21.  
  22. //创建一个cmd
  23. cmd2 := exec.Command("ping", "www.baidu.com");
  24. buf := bytes.Buffer{};
  25. //将cmd2的标准输出设置为buf
  26. cmd2.Stdout = &buf;
  27. //运行命令,阻塞直到完成
  28. cmd2.Run();
  29. fmt.Println(buf.String());
  30.  
  31. //创建一个cmd
  32. cmd3 := exec.Command("ping", "www.baidu.com");
  33. //获取命令在start后标准输出管道
  34. out3, _ := cmd3.StdoutPipe();
  35. //执行命令
  36. cmd3.Start();
  37. //读取管道中所有数据
  38. data3, _ := ioutil.ReadAll(out3);
  39. //等待命令执行完成
  40. cmd3.Wait();
  41. fmt.Println(string(data3));
  42. }

  

golang语言中os/exec包的学习与使用的更多相关文章

  1. golang语言中os/signal包的学习与使用

    package main; import ( "os" "os/signal" "fmt" ) //signal包中提供了两个函数 //No ...

  2. golang语言中os/user包的学习与使用

    package main; import ( "os/user" "fmt" ) func main() { //返回当前用户的结构 u, _ := user. ...

  3. go语言中os/signal包的学习与使用

    package main; import ( "os" "os/signal" "fmt" ) //signal包中提供了两个函数 //No ...

  4. golang语言中sync/atomic包的学习与使用

    package main; import ( "sync/atomic" "fmt" "sync" ) //atomic包提供了底层的原子级 ...

  5. golang语言中os包的学习与使用(文件,目录,进程的操作)

    os中一些常用函数的使用: package main; import ( "os" "fmt" "time" "strings&q ...

  6. [golang][译]使用os/exec执行命令

    [golang][译]使用os/exec执行命令 https://colobu.com/2017/06/19/advanced-command-execution-in-Go-with-os-exec ...

  7. php 中函数获取可变参数的方法, 这个语法有点像 golang 语言中的

    原文呢:http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration.strict Onl ...

  8. golang中os/exec包用法

    exec包执行外部命令,它将os.StartProcess进行包装使得它更容易映射到stdin和stdout,并且利用pipe连接i/o. 1.func LookPath(file string) ( ...

  9. golang语言中bytes包的常用函数,Reader和Buffer的使用

    bytes中常用函数的使用: package main; import ( "bytes" "fmt" "unicode" ) //byte ...

随机推荐

  1. 虚拟机安装VMware tools

    选择虚拟机菜单栏--安装VMware tools 2 然后在CentOS系统中弹出的VMware tools窗口中 右击VMwaretools-9.6.0-1294478.tar.gz 解压缩到 3 ...

  2. python实现根据文件关键字进行切分为多个文件

    来源:在工作过程中,需要统计一些trace信息,也就是一些打点信息,而打点是通过关键字进行的,因此对一个很大的文件进行分析时,想把两个打点之间的内容单独拷贝出来进行分析 #!/usr/bin/env ...

  3. ArcGIS中的WKID(转)

    ArcGIS中的WKID link: https://www.cnblogs.com/liweis/p/5951032.html 提到坐标系统,大家多少能明白一些,但在运用时,有些朋友搞得不是非常清楚 ...

  4. SQL调用C# dll(第一中DLL,没使用强名称密匙,默认是 safe)

    https://msdn.microsoft.com/zh-cn/library/ms345106(es-es).aspx 1.新建项目名称SQLDllTest,类代码如下,没有用Using引用其他类 ...

  5. 吴裕雄 python神经网络 水果图片识别(3)

    import osimport kerasimport timeimport numpy as npimport tensorflow as tffrom random import shufflef ...

  6. Hadoop集群(四) Hadoop升级

    Hadoop前面安装的集群是2.6版本,现在升级到2.7版本. 注意,这个集群上有运行Hbase,所以,升级前后,需要启停Hbase. 更多安装步骤,请参考: Hadoop集群(一) Zookeepe ...

  7. java-学习4

    一.八大数据类型—dataType 整型 1)byte 2)short 3)int 4)long 浮点型 5)float 6)double 字符型 7)char 布尔型 8)boolean 二.变量和 ...

  8. php导出excel不知道列数 php26进制函数

    function num2Letter($num) { $num = intval($num); if ($num <= 0) return false; $letterArr = array( ...

  9. linux安装php-redis扩展

    wget http://pecl.php.net/get/redis-2.2.5.tgz #解压 tar zxvf redis-2.2.5.tgz #进入安装目录 cd redis-2.2.5 /us ...

  10. 使用jquery如何获取现在时间、并且格式化

    参考网址:https://www.jb51.net/article/94626.html var now=new Date(); $("#total").html(formatTi ...