Em um cluster compartilhado em que trabalho, as configurações de ambiente para novas contas não incluem uma configuração de prompt, até onde sei. Em particular, PS1
não está definido. E, no entanto, quando alguém faz login em uma nova conta, recebe um prompt bastante sofisticado, apresentando o nome de usuário e o nome base do diretório atual.
Eu quero salvar este prompt (por exemplo, em uma variável de ambiente como ORIGINAL_PS1
) antes de substituí-lo pelo meu prompt preferido, para que eu possa restaurá-lo mais tarde, se desejado 1 .
Como posso extrair a definição de prompt do prompt atual?
Estou principalmente interessado na resposta a esta pergunta para bash
, mas se houver algo análogo para zsh
, informe-me.
1 Eu gosto do prompt padrão, mas para uso diário prefiro usar um git
prompt "-aware". Dito isso, embora eu ache o último extremamente útil 99,999% do tempo, ocasionalmente eu vou cd
para um git
repositório que está tão bagunçado que faz com que a geração do prompt se torne inaceitavelmente lenta. Para essas raras circunstâncias, eu gostaria de poder executar export PS1=$ORIGINAL_PS1
.
ORIGINAL_PS1=$PS1
salvaria o valor da variável de prompt primária em uma nova variável.A
PS1
variável é uma variável shell que não é exportada, ou seja, não é uma variável de ambiente que é herdada por processos filhos.No
zsh
shell, você pode salvar adicionalmente o "prompt primário direito",RPS1
, se for usado. O prompt principal é chamadoPS1
emzsh
, assim como embash
.