2016-05-23 2 views
1

Я пытаюсь изменить элемент ассоциативного массива zsh, но я не могу найти никаких подсказок по правильному синтаксису.Как добавить ассоциативный массив в zsh?

PHP-эквивалент будет

$assoc['key'] = 'newvalue';

, но как я могу сделать это в Zsh?

Документация кажется очень запутанной на этом, поскольку предполагает, что после того, как вы настроили ассоциативный массив, вы никогда не захотите его изменить.

EDIT: это то, что я пытаюсь сделать

% noglob ZSH_HIGHLIGHT_STYLES[globbing]='fg=yellow' zsh: command not found: ZSH_HIGHLIGHT_STYLES[globbing]=fg=yellow

$ZSH_HIGHLIGHT_STYLES определяется ЗШ-подсветку синтаксиса плагин.

+0

Почему вы пытаетесь использовать 'noglob' (модификатор precommand) с оператором присваивания? – chepner

+0

Мозг исчезает, я думаю - пытаясь избежать необходимости избегать квадратных скобок. Оказывается, вам это не нужно, и на примере, который я рассматривал, были ненужные обратные косые черты. Благодаря! –

ответ

2

Это на самом деле довольно просто, если у вас есть ассоциативный массив.

typeset -A assoc 
assoc[key]=newvalue 
+0

Это можно сделать в oneliner? Я думаю 'typeet -A assoc = [key1] = newvalue1 [key2] = newvalue2' – Solitude

+0

Да; вы можете написать 'typeset -A assoc = (key1 newvalue1 key2 newvalue2)'. – chepner

Смежные вопросы