【发布时间】:2019-03-17 15:53:42
【问题描述】:
我正在尝试执行 linux 命令并将输出转换为 int。这是我当前的代码:
package main
import (
"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 exec: "ulimit -n": 找不到可执行文件 $路径
我不明白这个错误是什么意思以及如何解决它。
【问题讨论】:
-
你真正的代码可能是
exec.Command("ulimit -n")(单参数),而不是exec.Command("ulimit", "-n")(多参数)。如果不指定绝对路径,操作系统总是在$PATH列出的目录中查找程序(并且没有名为“uname -n”的程序,因此出现错误)。 -
我用单个参数更改,并返回相同的错误 exec: "ulimit -n": executable file not found in $PATH2
标签: go