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

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

執行外部命令并返回其輸出

執行外部命令并返回其輸出

Go
吃雞游戲 2023-04-24 15:52:59
我正在嘗試執行 linux 命令并將輸出轉換為 int。這是我當前的代碼:package mainimport (    "os/exec"    "os"    "strconv"    _"fmt"    "log"    "bytes")func main(){    cmd := exec.Command("ulimit", "-n")    cmdOutput := &bytes.Buffer{}    cmd.Stdout = cmdOutput    err := cmd.Run()    if err != nil {      os.Stderr.WriteString(err.Error())    }    count, err := strconv.Atoi( string(cmdOutput.Bytes()) )    if err != nil {        log.Fatal(err)    }    if count <= 1024 {        log.Fatal("This machine is not good for working!!!")    }}這是我當前的錯誤:2018/10/12 14:37:27 執行:“ulimit -n”:在 $PATH 中找不到可執行文件我不明白此錯誤的含義以及如何修復它。
查看完整描述

1 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

linux 中沒有ulimit可以運行的程序。

ulimit 是 shell 的內置函數。因此,您需要運行一個 shell 并讓 shell 運行其內部的 ulimit 命令。

cmd?:=?exec.Command("/bin/sh",?"-c"?"ulimit?-n")

您還必須從 ulimit 命令的輸出中刪除換行符,例如

count,?err?:=?strconv.Atoi(?strings.Trim(string(cmdOutput.Bytes()),"\n"))

更好的選擇是通過 go 中的系統調用 API 檢索這些限制


查看完整回答
反對 回復 2023-04-24
  • 1 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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