第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Goland 讀取命令的每行輸出

Goland 讀取命令的每行輸出

Go
catspeake 2021-12-07 18:45:04
我想每行讀取一個(gè)輸出命令行。為此,我使用StdoutPipe方法和bufio庫:package mainimport (        "encoding/json"        "fmt"        "log"        "os/exec"        "bufio")func main() {        cmd := exec.Command("printf", "{\"Name\": \"Bob\", \"Age\": 1}\n%.0s", "{1..5}")        stdout, err := cmd.StdoutPipe()        if err != nil {                log.Fatal(err)        }        scanner := bufio.NewScanner(stdout)        if err := cmd.Start(); err != nil {                log.Fatal(err)        }        var person struct {                Name string                Age  int        }        for scanner.Scan() {                if err := json.Unmarshal([]byte(scanner.Text()), &person); err != nil {                        log.Fatal(err)                } else {                        fmt.Printf("%s is %d years old\n", person.Name, person.Age)                }        }        if err := cmd.Wait(); err != nil {                log.Fatal(err)        }}我應(yīng)該獲得 5 行:$ printf "{\"Name\": \"Bob\", \"Age\": 1}\n%.0s" {1..5}{"Name": "Bob", "Age": 1}{"Name": "Bob", "Age": 1}{"Name": "Bob", "Age": 1}{"Name": "Bob", "Age": 1}{"Name": "Bob", "Age": 1}關(guān)鍵是我只得到第一行。我很新Go,我猜 StdoutPipe 的用法是不正確的。
查看完整描述

1 回答

?
慕無忌1623718

TA貢獻(xiàn)1744條經(jīng)驗(yàn) 獲得超4個(gè)贊

{1..5}1 2 3 4 5shell擴(kuò)展為,所以你必須自己做:

cmd := exec.Command("printf", `{"Name": "Bob", "Age": %s}\n`, `1`, `2`) // etc.

還要注意原始字符串的使用,它比不斷轉(zhuǎn)義所有內(nèi)容要方便得多。在相關(guān)說明中,[]byte(scanner.Text())您應(yīng)該真正使用scanner.Bytes().


查看完整回答
反對 回復(fù) 2021-12-07
  • 1 回答
  • 0 關(guān)注
  • 210 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)