golang代码实例库

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2904|回复: 0

golang:执行shell命令2(阻塞执行,等待结果)

[复制链接]

82

主题

82

帖子

486

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
486
发表于 2021-12-22 22:20:58 | 显示全部楼层 |阅读模式
实例说明
我们经常需要执行本地shell命令,或者是执行其他二进制可执行文件
1)执行本地二进制可执行文件
2)阻塞执行,等待执行完成再继续


实例代码
[Golang] 纯文本查看 复制代码
package main

import (
        "fmt"
        "os/exec"
)

const (
        filePath = "/Users/test"
)

func main() {        
        // 功能:在filePath目录查找,1⃣️211开头,.go结尾的文件,并且统计这些文件所有非空行的总行数
        fileName := "211*.go"
        cmd := "find " + filePath + " -name \"" + fileName + "\" |xargs cat|grep -v ^$|wc -l"
        shell := exec.Command("/bin/bash", "-c", cmd)

        // CombinedOutput :执行命令,并且将标准输出和标准错误输出,返回内容是[]byte格式             
        // output, _ := shell.Output(), 这种方式则只输出标准输出,建议使用带标注错误的,因为我们拼写的cmd命令可能有些错误信息,通过标准错误我们可以发现这些错误
        output, _ := shell.CombinedOutput()
        fmt.Println(string(output))
}





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|golang代码实例库 ( 粤ICP备2021162396号 )

GMT+8, 2024-12-5 08:33 , Processed in 0.015929 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表