A variável fg_bold parece não estar definida em um script zsh, por que? (oh-meu-sh)

0

Eu tenho usado oh-my-sh nos últimos meses, e eu adoro isso :), eu tenho notado que há uma variedade de cores fg_bold [], e usando o array podemos ecoar mensagens informativas com cores.

por exemplo: echo $ fg_bold [yellow] "Vamos fazer funcionar!"

Executar isso do terminal funcionou como um charme.

MAS parece que se eu abrir um novo script zsh e copiar & cole, falha ($ fg_bold [amarelo] está vazio):

#!/usr/bin/zsh #taken from which zsh

echo $fg_bold[yellow] "Let's make it work!"

Mais para adicionar a matriz do fg_bold não aparece em env e em printenv . O que eu sinto falta aqui?

Obrigado a todos

    
por JammingThebBits 25.07.2018 / 11:38

1 resposta

2

Essa variável é extraída da função colors autoloadable.

Você precisa carregar e executar essa função:

autoload colors
colors

Note que você também pode usar a expansão de prompt que não precisa da função colors :

print -P %F{red}

Ou:

echo ${(%):-%F{red}}

Em qualquer caso, essa é uma variável shell de matriz associativa, não algo que pode ou deve ser exportado para o ambiente. Se você quiser ver sua declaração, use typeset -p fg_bold (observe que a variável tem o atributo -H (hide value), então typeset -p mostrará os valores, você pode remover esse atributo com typeset +H fg_bold ou ver o valores com typeset fg_bold ).

    
por 25.07.2018 / 12:52

Tags