Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menangkap Output Perintah dalam Masa Nyata daripada Bot Sembang?

Bagaimana untuk Menangkap Output Perintah dalam Masa Nyata daripada Bot Sembang?

Susan Sarandon
Lepaskan: 2024-11-03 04:50:30
asal
672 orang telah melayarinya

How to Capture Command Output in Real Time from a Chat Bot?

Cara Menangkap Output daripada Pelaksanaan Perintah dalam Masa Nyata

Isu:

Bila melaksanakan arahan dari dalam bot sembang, output stdout dikembalikan sekaligus pada akhir arahan. Untuk mencapai output masa nyata, terdapat keperluan untuk mengubah suai pelaksanaannya untuk menulis dalam masa nyata.

Penyelesaian Cadangan:

Fungsi yang disediakan mengumpul output stdout sekaligus dan mengembalikannya setelah selesai. Kita boleh menambah baik perkara ini dengan menggunakan paip untuk menangkap output dalam masa nyata.

Pelaksanaan:

<code class="go">package main

import (
    "os"
    "os/exec"
    "fmt"
    "bufio"
)

func main() {
    cmd := exec.Command("tail", "-f",  "/usr/local/var/log/redis.log")

    // create a pipe for the output of the script
    cmdReader, err := cmd.StdoutPipe()
    if err != nil {
        fmt.Fprintln(os.Stderr, "Error creating StdoutPipe for Cmd", err)
        return
    }

    scanner := bufio.NewScanner(cmdReader)
    go func() {
        for scanner.Scan() {
            fmt.Printf("\t > %s\n", scanner.Text())
        }
    }()

    err = cmd.Start()
    if err != nil {
        fmt.Fprintln(os.Stderr, "Error starting Cmd", err)
        return
    }

    err = cmd.Wait()
    if err != nil {
        fmt.Fprintln(os.Stderr, "Error waiting for Cmd", err)
        return
    }
}</code>
Salin selepas log masuk

Menggunakan pendekatan ini, output stdout daripada yang dilaksanakan arahan akan distrim ke saluran sembang dalam masa nyata, membolehkan maklum balas segera dan komunikasi interaktif.

Atas ialah kandungan terperinci Bagaimana untuk Menangkap Output Perintah dalam Masa Nyata daripada Bot Sembang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan