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

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

Golang 獲取命令 tty 輸出

Golang 獲取命令 tty 輸出

Go
白豬掌柜的 2023-07-26 15:39:53
我使用 go 的 exec Run 命令來獲取命令輸出,當(dāng)命令“Stdout”字段設(shè)置為os.Stdout且錯(cuò)誤發(fā)送到os.Stderr.我想將輸出和錯(cuò)誤輸出顯示到控制臺,但我也希望我的程序看到輸出是什么。然后我創(chuàng)建了自己的 Writer 類型來完成此操作,將兩者寫入緩沖區(qū)并打印到終端。問題是,當(dāng)某些應(yīng)用程序檢測到它沒有寫入 tty 時(shí),會將其輸出更改為人類難以讀取的內(nèi)容。因此,當(dāng)我以后一種方式執(zhí)行此操作時(shí),我得到的輸出會變得丑陋。(對計(jì)算機(jī)來說更干凈,對人類來說更丑陋)我想知道 Go 中是否有某種方法可以讓我運(yùn)行的任何命令相信我是 tty,盡管不是 tty os.Stdout/os.Stderr。我知道可以使用scriptbash 命令來完成,但是根據(jù) Darwin/Linux 使用不同的標(biāo)志,所以我試圖避免這種情況。提前致謝!
查看完整描述

1 回答

?
狐的傳說

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

解決此問題的唯一實(shí)用方法是分配一個(gè)偽終端 (PTY)并使外部進(jìn)程將其用于其輸出:由于 PTY 仍然是一個(gè)終端,因此檢查它是否連接到真實(shí)終端的進(jìn)程認(rèn)為它是。

您可以從這個(gè)查詢開始。

github.com/creack/pty可能是一個(gè)很好的起點(diǎn)。

下一步是讓一個(gè)實(shí)現(xiàn) PTY 的包實(shí)際分配它,并將 PTY 的“另一端”連接到您的自定義編寫器。

(順便說一句,編寫自定義的“多編寫器”是沒有意義的io.MultiWriter)。


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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