2012-09-28 15 views
7

En mi archivo .bashrc:Acceso a la variable de entorno de usuario

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

En la línea de comandos, funciona cuando "eco" la misma. Pero no puedo ver esta variable usuario dart con, yo sólo veo variable del sistema, pero no la mía:

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

me trataron:

  • en las ventanas y funciona
  • en mac pero no lo hace trabajo

¿Mi variable de usuario no está bien definida? ¿Mi código es malo? Es un error?

Respuesta

9

Usando el siguiente código:

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

que fue capaz de anular las variables de entorno en Windows y Mac. En Mac tuve que agregar la línea a .bash_profile (.bashrc no está cargado en mi Mac).

John

Aquí está el enlace a documentos de dardos: https://api.dartlang.org/1.13.0/dart-io/Platform-class.html

+0

Gracias, por lo que mi código es buena. Después de algunas pruebas, el comportamiento es extraño: cuando corro desde Dart Editor, no puedo ver mi variable de usuario (Linux y Mac OS), pero la ejecuto con línea de comandos ... –

+0

Hola, Nicolas, esto es probable porque Dart El editor no se ejecuta dentro de un shell bash, sino que se genera a partir del Dock o Finder, que tiene su propio conjunto de variables de entorno. Consulte esta publicación sobre cómo controlar las variables de entorno para la aplicación iniciada: http://stackoverflow.com/questions/603785/environment-variables-in-mac-os-x – Cutch

Cuestiones relacionadas