O que a sequência %\/
faz na expansão do prompt zsh? man zshmisc
não contém a string %\
, que é onde estão o restante das expansões específicas do prompt.
A sequência pode ser vista emArquivos de pontos de Holman:
directory_name(){
echo "%{$fg_bold[cyan]%}%1/%\/%{$reset_color%}"
}
export PROMPT=$'in $(directory_name)› '
Responder1
%\
não faz nada, então é inútil. O mesmo para $
dentro $'...'
. Não há necessidade disso, pois não há sequência de escape para expandir lá.
A coisa toda pode ser escrita:
PS1='in %{$fg_bold[cyan]%}%1//%{$reset_color%}› '
ou:
PS1="in %{$fg_bold[cyan]%}%1//%{$reset_color%}› "
para ter o $fg_bold...
expandido no momento dessa atribuição, e não em cada prompt.
Não há necessidade de substituir o comando em cada prompt, pois a saída de directory_name
não muda de uma execução para outra.
Você provavelmente também não deseja export
PS1 ou PROMPT.