Доступ к переменной среды пользователя

В моем файле .bashrc:

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

В командной строке это работает, когда я повторяю это. Но я не вижу эту пользовательскую переменную из dart с, я вижу только системную переменную, но не мою:

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

Я попытался:

  • на окнах и работает
  • на маке но не работает

Моя пользовательская переменная не определена? Мой код плохой? Это ошибка?


person Nicolas François    schedule 28.09.2012    source источник


Ответы (1)


Используя следующий код:

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).

Джон

Вот ссылка на документы dart: https://api.dartlang.org/1.13.0/dart-io/Platform-class.html

person Cutch    schedule 28.09.2012
comment
Спасибо, так что мой код хорош. После некоторых тестов поведение странное: когда я запускаю из Dart Editor, я не вижу свою пользовательскую переменную (linux и Mac OS), но я запускаю ее из командной строки, и она работает... - person Nicolas François; 28.09.2012
comment
Привет, Николя, это, вероятно, потому, что Dart Editor не работает внутри оболочки bash, а порождается из Dock или Finder, у которого есть собственный набор переменных среды. См. этот пост, чтобы узнать, как управлять переменными среды для запущенного приложения. х">stackoverflow.com/questions/603785/ - person Cutch; 29.09.2012