登录
首页 >  Golang >  Go问答

使用Go语言捕获终端输出的方法

来源:stackoverflow

时间:2024-03-20 17:09:36 402浏览 收藏

在 Go 语言中,可以通过从 os.Stdin 中读取来获取终端输出。这种方法允许程序读取管道或重定向输入中的内容。当使用 echo 或 cat 命令将输出重定向到程序时,程序可以逐行读取输入,并根据需要对输入进行处理或打印。这为在 Go 应用程序中使用管道和重定向提供了灵活性,从而简化了输入处理并增强了程序的可扩展性。

问题内容

我想使用 go 创建一个简单的程序,可以在终端输出中获取输出。例如:

echo“约翰”| goprogram

输出为 hi john

使用命令 cat

cat 列表名称.txt | goprogram

使用的输出

hi doe
hi james
hi chris

有没有办法使用 go 来做到这一点?


正确答案


os.Stdin 读取。这是 hi 程序的示例实现。

package main

import (
    "bufio"
    "fmt"
    "log"
    "os"
)

func main() {
    s := bufio.NewScanner(os.Stdin)
    for s.Scan() {
        fmt.Println("hi", s.Text())
    }
    if s.Err() != nil {
        log.Fatal(s.Err())
    }
}

该程序创建一个 scanner 来逐行读取 os.stdin。对于标准输入中的每一行,程序都会打印“hi”和该行。

以上就是《使用Go语言捕获终端输出的方法》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>