2012-09-28 2 views
7

In meinem .bashrc:Zugriff auf Benutzerumgebungsvariable

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

In Befehlszeile funktioniert es, wenn ich "echo" es. Aber ich kann nicht den Benutzer variabel sehen von dart mit, ich sehe Systemvariable nur, aber nicht von mir:

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

Ich habe versucht:

  • an Fenstern und es funktioniert
  • auf dem Mac aber nicht Arbeit

Ist meine Benutzervariable nicht gut definiert? Ist mein Code schlecht? Es ist ein Fehler?

Antwort

9

Verwendung des folgenden Codes:

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")); 
} 

konnte ich Umgebungsvariablen auf Windows und Mac außer Kraft zu setzen. Auf Mac musste ich die Zeile zu .bash_profile hinzufügen (.bashrc ist auf meinem Mac nicht geladen).

John

Hier ist der Link zu dart docs: https://api.dartlang.org/1.13.0/dart-io/Platform-class.html

+0

Danke, so meinen Code gut ist. Nach einigen Tests ist das Verhalten merkwürdig: Wenn ich vom Dart Editor aus laufe, kann ich meine Benutzervariable (linux und Mac OS) nicht sehen, aber ich starte es mit Kommandozeile ... –

+0

Hallo Nicolas, das ist wahrscheinlich weil Dart Der Editor wird nicht in einer Bash-Shell ausgeführt, sondern aus dem Dock oder Finder, der über eigene Umgebungsvariablen verfügt. In diesem Beitrag erfahren Sie, wie Sie Umgebungsvariablen für gestartete Anwendungen steuern können: http://stackoverflow.com/questions/603785/environment-variables-in-mac-os-x – Cutch