A impressão avaliou marcadores temporários para a tela

1

Existe uma maneira de imprimir marcadores de posição variáveis PS1 interpretados para o console? Algo como

$ echo '%u'

para imprimir um nome de usuário ou

$ echo '%h'

para imprimir um host. Eu sei sobre variáveis de ambiente Eu só quero saber se existe uma maneira de obter as mesmas informações através da variável PS1 .

    
por Eimantas 27.07.2011 / 06:40

1 resposta

4

Em zsh, use o sinalizador de expansão de parâmetro % .

tmp='%n@%m'; echo ${(%)tmp}

No bash, não parece ser um caminho fácil, mas há uma maneira sorrateira:

tmp=$(set +x; (PS4='+.\u@\h'; set -x; :) 2>&1); tmp=${tmp#*.}; echo ${tmp%:}

No tcsh, não acho que haja um jeito. (Mas quem usa (t) csh nos dias de hoje de qualquer maneira?)

    
por 27.07.2011 / 22:15