Existem duas formas principais:
- Expansão de parâmetro ativando
PROMPT_SUBST - O
psvararray
1. Expansão de parâmetro no prompt
Se PROMPT_SUBST estiver ativado
setopt PROMPT_SUBST
o prompt é submetido a expansão de parâmetro, substituição de comandos e expansão aritmética antes de ser avaliado.
Dessa forma, a saída de um script pode ser incluída via substituição de comando. Por exemplo:
PROMPT='Look at this: $(python yourscript.py) >'
Se a saída contiver seqüências de escape ( %~ , %M , %F{red} etc.), elas serão avaliadas antes que o prompt seja impresso.
2. O array psvar
Um dos primeiros nove valores da matriz psvar pode ser definido para a saída do script. Ele pode ser recuperado usando %Xv , onde X é um número entre 1 e 9 (o padrão é 1 se X for omitido).
psvar[5]=$(python yourscript.py)
PROMPT='Look at this: %5v >'
Para atualizar o valor toda vez que o prompt é impresso, a função de gancho precmd precisa ser definida:
precmd() {
psvar[5]=$(python yourscript.py)
}
Se já houver uma função precmd , ou se mais de uma função for usada, é uma boa idéia usar add-zsh-hook .
# load add-zsh-hook, need to be done only once
autoload -Uz add-zsh-hook
pyscript() {
psvar[5]=$(python yourscript.py)
}
add-zsh-hook precmd pyscript
Isso adiciona pycript à lista de funções que precisam ser executadas antes de imprimir o prompt.