.bashrc arquivo adiciona um par de dezenas de espaços para o prompt

1

Eu consegui um arquivo .bashrc para fora da rede. Eu verifiquei de antemão, não detectei nada de ruim nisso.

Uma coisa que é estranha, é que vários espaços são adicionados à linha de comando do terminal.

Screenshot:

Essesespaçosnãosãocolocadoslápormim.

Oarquivopodeserencontradoaqui: link

    
por KdgDev 03.09.2010 / 09:23

3 respostas

1

Quando o prompt contém caracteres não imprimíveis, eles devem estar entre \[…\] . Caso contrário, o bash conta esses caracteres como parte da largura do prompt.

As configurações de prompt não apresentam várias instâncias de \[…\] . Aqui estão os que eu encontrei depois de um olhar superficial:

function fastprompt()
{
    unset PROMPT_COMMAND
    case $TERM in
        *term | rxvt )
            PS1="\[${HILIT}\][\h]\[$NC\] \W > \[3]0;\${TERM} [\u@\h] \w
function fastprompt()
{
    unset PROMPT_COMMAND
    case $TERM in
        *term | rxvt )
            PS1="\[${HILIT}\][\h]\[$NC\] \W > \[3]0;\${TERM} [\u@\h] \w%pre%7\]" ;;
        linux )
            PS1="\[${HILIT}\][\h]\[$NC\] \W > " ;;
        *)
            PS1="[\h] \W > " ;;
    esac
}

function powerprompt()
{

    PROMPT_COMMAND=_powerprompt
    case $TERM in
        *term | rxvt  )
            PS1="\[${HILIT}\][\A - \$LOAD]\[$NC\]\n[\u@\h \#] \W > \
                 \[3]0;\${TERM} [\u@\h] \w%pre%7\]" ;;
        linux )
            PS1="\[${HILIT}\][\A - \$LOAD]\[$NC\]\n[\u@\h \#] \W > " ;;
        * )
            PS1="[\A - \$LOAD]\n[\u@\h \#] \W > " ;;
    esac
}
7\]" ;; linux ) PS1="\[${HILIT}\][\h]\[$NC\] \W > " ;; *) PS1="[\h] \W > " ;; esac } function powerprompt() { PROMPT_COMMAND=_powerprompt case $TERM in *term | rxvt ) PS1="\[${HILIT}\][\A - \$LOAD]\[$NC\]\n[\u@\h \#] \W > \ \[3]0;\${TERM} [\u@\h] \w%pre%7\]" ;; linux ) PS1="\[${HILIT}\][\A - \$LOAD]\[$NC\]\n[\u@\h \#] \W > " ;; * ) PS1="[\A - \$LOAD]\n[\u@\h \#] \W > " ;; esac }
    
por 03.09.2010 / 20:08
2

Veja a função powerprompt .

Se você copiou e colou no seu .bashrc , você pode ter começado espaços no início das linhas terminando com \ (barra invertida).

(Você pode postar seu verdadeiro .bashrc em algum lugar)? Ou tente: echo \"$PS1\"

( EDITAR: Claro que quero dizer "no começo das linhas seguindo as linhas terminadas em \ .)

    
por 03.09.2010 / 09:59
1

Tente retirar o código que está no

#-------------------------------------------------------------
# Shell Prompt
#-------------------------------------------------------------

seção do arquivo .bashrc . Esta parece ser a área que controla a aparência do prompt.

Como é o seu prompt agora? Se você não notar uma alteração, certifique-se de iniciar uma nova janela do Terminal.

Além do arquivo .bashrc em seu diretório pessoal, existem configurações de todo o sistema na pasta /etc/ . Eles geralmente são encontrados em /etc/bashrc ou /etc/bash_profile (note que eles não estão ocultos, não há% prepended.) dependendo do sabor do Linux que você está usando.

Além disso, você tem outros arquivos .bash_profile ou .profile , como em seu diretório inicial, que também podem estar agindo para configurar o prompt?

    
por 03.09.2010 / 15:28