$PATH中找不到Unix可执行文件

5

我在使用 Go 时遇到了问题,以下是我的代码:

package main

import (
    "fmt"
    "os/exec"
)

func main() {
    output, err := exec.Command("pwd").Output()
    fmt.Println(string(output), err)

    output, err = exec.Command("ls", "-l").Output()
    fmt.Println(string(output), err)
}

当我运行这个命令时,出现了以下错误。

err exec: "pwd": 在$PATH中找不到可执行文件;

err exec: "ls": 在$PATH中找不到可执行文件。

我使用的是Ubuntu 14.04。

1
适用于我。你应该检查运行程序的用户是否真正拥有所需命令的访问权限:该用户可能不是你想要/相信的那个人... - Elwinar
2
请检查您的环境变量$PATH。它可能已经在~/.bashrc文件中被更改。否则,您的代码将正常运行,没有错误。 - cyt
谢谢!我的$PATH有问题吗?它能正常工作! - longuid
为什么没有人回答这个显而易见的问题,即'go'可执行文件在哪里? - Thomas Jay Rush
你的$PATH是什么?如果仍然有问题,请尝试从Golang中打印它。 - Gal Ben-Haim
你是如何运行你的代码的?使用 go build 还是 go run 或者 sudo go?并且检查一下你的 Go 的所有者。 - Bryce
1个回答

0
起初我以为问题是由于代码不在~/go/src/<bitbucket.org>/<username>/目录中引起的,但事实证明,如果从主目录即~/执行,它也会成功运行。可能像评论中已经提到的那样,命令pwdls不在路径中或程序被另一个用户执行。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接