当前位置: 首页 > news >正文

营销网络建设四个阶段乌海网站seo

营销网络建设四个阶段,乌海网站seo,百万网站建设报价,什么软件比百度搜索好go语言将cmd stdout和stderr作为字符串返回而不是打印到控制台 1、直接打印到控制台 从 golang 应用程序中执行 bash 命令,现在 stdout 和 stderr 直接进入控制台: cmd.Stdout os.Stdout cmd.Stderr os.Stderrpackage mainimport ("fmt"…

go语言将cmd stdout和stderr作为字符串返回而不是打印到控制台

1、直接打印到控制台

从 golang 应用程序中执行 bash 命令,现在 stdout 和 stderr 直接进入控制台:

cmd.Stdout = os.Stdout 
cmd.Stderr = os.Stderr
package mainimport ("fmt""log""os""os/exec""time"
)func main() {ok, outString, errString := runBashCommandAndKillIfTooSlow("dir", 2000)fmt.Println("ok")fmt.Println(ok)fmt.Println("outString")fmt.Println(outString)fmt.Println("errString")fmt.Println(errString)
}/*run bash command and kill it if it works longer than "killInMilliSeconds" milliseconds
*/
func runBashCommandAndKillIfTooSlow(command string, killInMilliSeconds time.Duration) (okResult bool, stdout, stderr string) {fmt.Println("running bash command...")fmt.Println(command)// Linux// cmd := exec.Command("sh", "-c", command)// Windowscmd := exec.Command("cmd", "/C", command)cmd.Stdout = os.Stdout // cmd.Stdout -> stdoutcmd.Stderr = os.Stderr // cmd.Stderr -> stderrokResult = trueerr := cmd.Start()log.Printf("Waiting for command to finish...")done := make(chan error, 1)go func() {done <- cmd.Wait()}()select {case <-time.After(killInMilliSeconds * time.Millisecond):if err := cmd.Process.Kill(); err != nil {log.Fatal("failed to kill: ", err)okResult = false}// allow goroutine to exit<-donelog.Println("process killed")case err := <-done:if err != nil {log.Printf("process done with error = %v", err)okResult = false}}if err != nil {log.Fatal(err)okResult = false}return
}

如果 bash 命令太慢( killInMilliSeconds 参数),程序应该保持其终止 bash 命令的能力。

希望 stdout 和 stderr 作为字符串变量从 runBashCommandAndKillIfTooSlow 函数返回,而不立即打印到控

制台,如何实现。

2、不打印到控制台

将输出设置为 strings.Builder 或 bytes.Buffer:

var outbuf, errbuf strings.Builder // or bytes.Buffer
cmd.Stdout = &outbuf
cmd.Stderr = &errbuf

运行命令后,您可以通过调用 Builder.String() 获取字符串形式的标准输出和标准错误:

stdout := outbuf.String()
stderr := errbuf.String()
package mainimport ("fmt""log""os/exec""strings""time"
)func main() {ok, outString, errString := runBashCommandAndKillIfTooSlow("dir", 2000)fmt.Println("ok")fmt.Println(ok)fmt.Println("outString")fmt.Println(outString)fmt.Println("errString")fmt.Println(errString)
}/*run bash command and kill it if it works longer than "killInMilliSeconds" milliseconds
*/
func runBashCommandAndKillIfTooSlow(command string, killInMilliSeconds time.Duration) (okResult bool, stdout, stderr string) {fmt.Println("running bash command...")fmt.Println(command)// Linux// cmd := exec.Command("sh", "-c", command)// Windowscmd := exec.Command("cmd", "/C", command)var outBuf, errBuf strings.Builder // or bytes.Buffercmd.Stdout = &outBufcmd.Stderr = &errBufokResult = trueerr := cmd.Start()log.Printf("Waiting for command to finish...")done := make(chan error, 1)go func() {done <- cmd.Wait()}()select {case <-time.After(killInMilliSeconds * time.Millisecond):if err := cmd.Process.Kill(); err != nil {log.Fatal("failed to kill: ", err)okResult = false}// allow goroutine to exit<-donelog.Println("process killed")case err := <-done:if err != nil {log.Printf("process done with error = %v", err)okResult = false}}if err != nil {log.Fatal(err)okResult = false}stdout = outBuf.String()stderr = errBuf.String()return
}
http://www.tj-hxxt.cn/news/38790.html

相关文章:

  • 个人网站设计流程图推广项目
  • python做网站稳定吗免费站长工具
  • 网站和网络有什么区别杭州旺道企业服务有限公司
  • 网站建设进无形资产的规定网站推广方案范例
  • 企业网站可以备案几个快速排名工具免费查询
  • 网站维护服务项目免费域名注册申请
  • 南京代做网站学seo的培训学校
  • 烟台网站建设策划方案河北电子商务seo
  • 网站优化流程图免费推广方法有哪些
  • 网站被黑能查到是谁做的吗南宁百度seo排名优化
  • info哪个网站续费便宜舆情分析
  • 临沂网站建设中企动力网站推广的案例
  • wordpress绑定熊掌号百度搜索优化关键词排名
  • 学习网站网址大全百度关键词竞价价格查询
  • 四川省住房和城乡建设网站海豹直播nba
  • 北京网站定制口碑营销推广
  • 做体育类网站素材电脑培训学校哪家最好
  • 曲阳网站建设推广外包服务公司
  • 新闻网站备案的前置条件网站的推广方式
  • 只有单页面的网站怎么做seo深圳优化公司找高粱seo服务
  • 上海制作网站的网站百度推广投诉中心
  • 专注合肥网站建设媒体发布平台
  • 美工网站设计收费最新热搜榜
  • 哪个网站找人做网页比较好爱奇艺科技有限公司
  • 用discuz做的大网站线上招生引流推广方法
  • photoshop做网站设计全搜网
  • 合肥公司网站建设价格太原关键词排名提升
  • 中企动力做的网站升级收费永久观看不收费的直播
  • 中国建设银行怎么查询余额重庆网站优化公司
  • wordpress图片集最新seo网站优化教程