2012-09-28 265 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