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

Попытайтесь искать zsh сокращения. Они позволяют Вам вводить "сокращение", которое автоматически заменяется его полной формой, когда Вы нажимаете волшебную клавишу, такую как пространство. Таким образом, можно создать тот, который изменяется ...<SPACE> кому: ../...

Например, это - то, в чем Вы нуждаетесь в своем профиле:

typeset -A abbrevs
abbrevs=(
        "..." "../.."
        "...." "../../.."        
)

#create aliases for the abbrevs too
for abbr in ${(k)abbrevs}; do
   alias -g $abbr="${abbrevs[$abbr]}"
done

my-expand-abbrev() {
    local MATCH
    LBUFFER=${LBUFFER%%(#m)[_a-zA-Z0-9]#}
    LBUFFER+=${abbrevs[$MATCH]:-$MATCH}
    zle self-insert
}

zle -N my-expand-abbrev    
bindkey " " my-expand-abbrev 
bindkey -M isearch " " self-insert
26
03.02.2012, 16:56
2 ответа

Это кажется, что Вы хотите env.

35
27.01.2020, 19:40
  • 1
    , который был смущающим!Спасибо. Но теперь, когда мы находимся на нем, если у меня не было никого для выяснения, как я, возможно, нашел это? –  Ali 03.02.2012, 17:07
  • 2
    @Ali ну, env не характерно для zsh, это - автономная программа. Однако результат номер один на Google для "переменных среды списка" говорит для использования env, таким образом, я предполагаю, что это - один способ ;-) –  Chris Down 03.02.2012, 17:14
  • 3
    , которым я имею в виду, не было ли у меня интернет-соединения! Я знаю, что умер бы через несколько дней без Интернет-соединения, но за те несколько дней, как я могу искать это в документации/человеке...? –  Ali 03.02.2012, 17:17
  • 4
    Вы могли сделать что-то как apropos environment –  glenn jackman 03.02.2012, 17:37
  • 5
    @Ali, если бы Вы хотели найти это без справки, я запустил бы с man zsh или поиск с помощью Google для "zsh печатает переменные" или подобный. –  Alex 13.03.2017, 00:41

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

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

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

Если Вы хотите переменные среды, существует также env команда, которая печатает неотсортированный, закрыла кавычки

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

21
27.01.2020, 19:40
  • 1
    echo $ZSH_VERSION возвраты 5.0.5, но когда я делаю env | grep ZSH_VERSION Я не вижу соответствий. ZSH_VERSION не переменная среды? Что я пропускаю? –  Josh 26.12.2014, 03:57
  • 2
    @Josh, Это - переменная оболочки, не экспортируемая в среду. –  Gilles 'SO- stop being evil' 26.12.2014, 11:58
  • 3
    @Gilles, Как мы перечислили бы всех тех также? № 1 SMP –  Daniel Que 29.09.2016, 23:52
  • 4
    @DanielQue Второй абзац моего –  Gilles 'SO- stop being evil' 30.09.2016, 00:02
  • 5
    @Gilles ответа, как который Это являются странные, локальные переменные ZSH_HIGHLIGHT_STYLES не обнаруживайтесь, когда я буду использовать set, или любая из других команд. –  Daniel Que 30.09.2016, 00:18

Теги

Похожие вопросы