我正在OSX 10.7.4上进行开发。
我在使用"获取"命令时遇到了一些问题。在试图找出问题所在的过程中,我意识到Go在读取$PATH环境变量时遇到了问题。
以下脚本显示了问题:-
(PATH作为空字符串返回,syscall.Getenv返回ok=false)
package main
import (
"os"
"syscall"
"fmt"
)
func main() {
path := os.Getenv("PATH")
fmt.Println(path)
syscall_path, ok := syscall.Getenv("PATH")
fmt.Println(syscall_path)
fmt.Println(ok)
}
我无法想象这是一个bug,因为它太戏剧性了,不会被忽视。所以我的问题是:我现在在什么方面变得愚蠢?
:-)
即,我需要做些什么才能启用Go来访问环境变量?
--更新:
事实证明,这实际上是我的shell的问题——Homebrew也停止了工作,并显示错误消息:
/usr/local/Library/Homebrew/global.rb:95: private method `split' called for nil:NilClass (NoMethodError)
from /usr/local/bin/brew:10:in `require'
from /usr/local/bin/brew:10
我认为这个问题源于我使用鱼壳,它似乎没有像我预期的那样创造环境。
事实证明,这是一个格式错误的~/.config/fish/config.fish文件。
我使用的是:
set -g VARNAME value
应该是:
set VARNAME value