2012-09-28 206 views
7

在我的.bashrc文件:访问用户环境变量

export DART_SDK=/home/nicolas/dart/dart-sdk 

在命令行中,它的工作原理,当我“回声”它。但我不能看到这个用户变量从dart用,我只看到系统变量,但不是我:

var env = Platform.environment; 
env.forEach((k,v) => print("Key=$k Value=$v")); 

我想:

  • 在Windows和它的作品
  • 在Mac上,但不工作

我的用户变量没有很好的定义吗?我的代码不好吗?这是一个错误?

回答

9

使用下面的代码:

import 'dart:io'; // Server side/command line only package. 

main() { 
    Map<String, String> env = Platform.environment; 
    env.forEach((k, v) => print("Key=$k Value=$v")); 
} 

我能够覆盖在Windows和Mac环境变量。在Mac上,我不得不将该行添加到.bash_profile(.bashrc未在我的Mac上加载)。

约翰

这里是链接到镖文档:https://api.dartlang.org/1.13.0/dart-io/Platform-class.html

+0

谢谢你,所以我的代码是好的。经过一些测试,行为很奇怪:当我从Dart编辑器运行时,我看不到我的用户变量(linux和Mac OS),但是我使用它的命令行来运行它... –

+0

Hi Nicolas,这可能是因为Dart编辑器不在bash shell中运行,而是从具有自己的一组环境变量的Dock或Finder中生成。看到这篇文章如何控制启动应用程序的环境变量 - http://stackoverflow.com/questions/603785/environment-variables-in-mac-os-x – Cutch