亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

帶有 bash -c 的 exec.Command 不返回標準輸出

帶有 bash -c 的 exec.Command 不返回標準輸出

Go
長風秋雁 2022-07-18 15:47:57
執行下面的程序,out是一個空的 type 切片[]uint8。package mainimport (    "context"    "log"    "os/exec")func main() {    ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)    defer cancel()    cmd := exec.CommandContext(ctx, "bash", "-c", "python3", "-c", "print('hello')")    out, _ := cmd.Output()    log.Println(out)}但是,如果我在沒有 的情況下運行bash -c,我會得到預期的輸出。這是一個bash -c不需要的簡單示例,但在現實世界中,我的應用程序正在調用一個導入多個包的 python 腳本,如果沒有bash -c,我會從 python 中得到“找不到模塊”錯誤。我在這里做錯了什么?如何捕獲標準輸出內容?
查看完整描述

1 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

bash -c后面應該跟一個字符串參數和要執行的命令,然后 bash 會做參數處理。

cmd := exec.CommandContext(ctx, "bash", "-c", "python3 -c 'print(\"hello\")'")


查看完整回答
反對 回復 2022-07-18
  • 1 回答
  • 0 關注
  • 292 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號