英文:
How to capture the output of the terminal using Go?
问题
我想使用Go创建一个简单的程序,可以在终端输出中获取输出。例如:
echo "john" | goprogram
输出是 hi john
当使用cat
命令时
cat list_name.txt | goprogram
输出为
hi doe
hi james
hi chris
有没有办法使用Go实现这个功能?
英文:
I want to create a simple program using Go that can get an output in the terminal output. For example:
echo "john" | goprogram
The output is hi john
When using command cat
cat list_name.txt | goprogram
The output using
hi doe
hi james
hi chris
Is there a way to do this using Go?
答案1
得分: 1
从 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。对于 stdin 中的每一行,程序会打印 "hi" 和该行内容。
英文:
Read from os.Stdin. Here's an example implementation of the Hi program.
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())
}
}
This program creates a scanner to read os.Stdin by line. For each line in stdin, the program prints "hi" and the line.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论