執行下面的程序,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\")'")
- 1 回答
- 0 關注
- 292 瀏覽
添加回答
舉報
0/150
提交
取消