有没有人知道如何定义要使用cabal运行的程序访问的环境变量?
我想定义我的程序可用的系统环境变量,例如通过System.Environment' getEnv'功能。这些变量可用于“getEnv”和#39;在ghci中,但不是与cabal运行的程序(' cabal run')。
我将环境变量定义为:
$ export myvar=MYVALUE
访问它们适用于ghci:
Prelude System.Environment> getEnv "myvar"
"MYVALUE"
然而,类似地使用' getEnv'在我的程序中运行' cabal run'给出错误:
getEnv: does not exist (no environment variable)
不知何故,我的程序在通过cabal运行时找不到它们。我试过放置' export'我的.bash_profile中的语句并重新启动我的终端。但这给了同样的问题,即在ghci中工作并在使用cabal运行时给出错误。
答案 0 :(得分:0)
感谢您的评论,我意识到这只是因为我犯了一个愚蠢的错误。
我的程序使用了几个不同的环境变量,其中一些被成功读取 - 错误是由于缺少一个我没有在ghci中测试过。
所以问题是由于没有测试所有变量,这是一个愚蠢的错误,但感谢你的评论,因为它们有助于诊断问题。