Gostaria de remover o til da exibição na variável PS1.
Minha string PS1 atual:
PS1="\h:\w\n$"
E o prompt é assim:
lnx-hladky:/tmp/plugtmp
$
Não gosto que o diretório $ HOME seja exibido como til. Isso pode ser evitado?
Causa problemas, por exemplo:
lnx-hladky:~/DOC
$
A documentação diz:
\w : the current working directory, with $HOME abbreviated with a tilde
\W: the basename of the current working directory, with $HOME abbreviated with a tilde
Existe alguma possibilidade de evitar que $ HOME seja abreviado com um til?
Eu encontrei uma maneira de contornar, mas sinto que é muito complicado:
PROMPT_COMMAND='echo -ne "\e[4;35m$(date +%T)\e[24m$(whoami)@$(hostname):$(pwd)\e[m\n"'
PS1=$
Alguém pode propor uma solução melhor? Tenho a sensação de que não é muito bom executar tantos comandos apenas para ser rápido. (data, whoami, nome do host, pwd).
command-line
bash
unix
Jirka
fonte
fonte
Respostas:
o bash executa expansões no prompt; apenas certifique-se de escapar deles.
fonte
pwd
a cada prompt. A solução de Dennis não apenas busca a variável de ambiente PWD, que é muito mais barata.pwd
é um bash embutido. A afirmação que${PWD}
é "muito mais barata" do que$(pwd)
é sem evidência.Você não precisa executar tantos comandos como mostrou no seu exemplo.
bash
fornece atalhos para a maioria das coisas que você mencionou.Seu exemplo:
pode ser reescrito como:
Onde
\t
mostra a hora (no formato de 24 horas),\u
mostra o nome de usuário atual, '\ h' mostra o nome do host - abash
página de manual discute isso e o restante das fugas disponíveis para o seu prompt.Mesmo se você expandir o
~
caminho para o caminho completo, se não souber qual usuário está executando o comando e estiver alternando regularmente, poderá criar problemas com as permissões de arquivo ou executável.fonte
\u
para saber quem sou. Não se esqueça de aceitar a resposta de Ignacio - clique na caixa de seleção à esquerda da pergunta.Estou usando a configuração abaixo no meu arquivo .bash_profile
fonte