В Zsh, как я могу перечислить все переменные среды?

26

Я хочу получить список всех переменных среды (переменные оболочки? Экспортируемые переменные?) И их значений в данный момент времени, в Zsh.
Как правильно это сделать?

Али
источник

Ответы:

35

Звучит так, как ты хочешь env.

Крис Даун
источник
это было неловко! Спасибо. Но теперь, когда мы находимся на этом, если у меня не было никого, чтобы спросить, как я мог найти это?
Али
3
@ Али Хорошо, envэто не просто программа zsh, это отдельная программа. Сказав это, результат номер один в Google для «списка переменных среды» говорит, что нужно использовать env, так что я думаю, что это один из способов ;-)
Крис Даун
1
Я имею в виду, если бы у меня не было подключения к интернету! Я знаю, что умру через несколько дней без подключения к Интернету, но как в эти несколько дней я могу посмотреть это в документации / человек ...?
Али
2
Вы могли бы сделать что-то вродеapropos environment
Гленн Джекман
1
@ Али, если бы вы хотели найти это без помощи, я бы начал с man zshGoogling или для «zsh print variable» или аналогичного.
Алекс
21

exportраспечатывает список переменных среды и их значений. Значения указаны в кавычках, вывод exportподходит для чтения обратно в оболочку. Переменные печатаются в алфавитном порядке.

Если вам нужны переменные оболочки, используйте set. Если вам нужны переменные оболочки с аннотациями типов ( exported, integerи т. Д.), Используйте typeset.

Вы можете использовать exportи setдругие оболочки, но большинство из них не заключают в кавычки вывод, так что он не разбирается. typesetдоступно (с другим поведением) на ksh и bash.

Если вы хотите переменные среды, есть также envкоманда, которая печатает несортированные, без кавычек

Если вам нужны только имена, обратитесь к parametersассоциативному массиву. Ключами являются имена параметров, а значения указывают типы.

Жиль "ТАК - перестань быть злым"
источник
2
echo $ZSH_VERSIONвозвращается 5.0.5, но когда я делаю, env | grep ZSH_VERSIONя не вижу никаких совпадений. Есть ZSH_VERSIONне переменная окружения? Что мне не хватает?
Джош
3
@Josh Это переменная оболочки, не экспортируемая в среду.
Жиль "ТАК ... перестать быть злым"
@ Жиль Как бы мы все это перечислили?
Даниэль Куэ
@DanielQue Второй абзац моего ответа
Жиль "ТАК - перестань быть злым"
@ Жиль Это странно, локальные переменные, такие как ZSH_HIGHLIGHT_STYLESне отображаются, когда я использую set, или любую другую команду.
Даниэль Цю