No GNU Screen, o comando Recorded bash history exibe uma posição de caractere à esquerda da localização real

1

Estou executando o Red Hat 5 de 32 bits (2.6.18-194.26.1.el5).

A questão é que quando eu me lembro de qualquer comando anterior na história do bash, o primeiro caractere no comando é exibido imediatamente após o prompt do shell, sem nenhum espaço intermediário, como:

\[me@mymachine tmp]$man mysql

Se eu digitar um Ctrl-C e digitar novamente o comando, ele parecerá com o:

\[me@mymachine tmp]$ man mysql

Isso faz a recordação de um comando e edição antes de voltar a entrar em uma dor real. Basicamente, se eu tentar editar um comando chamado, minhas alterações ocorrerão uma posição de caractere à esquerda (eu acredito) do que eu vejo na tela. É um pouco tedioso para descrever e parece acontecer apenas com comandos com um grande número de argumentos.

UPDATE: O conteúdo do / etc / sysconfig / bash-prompt-screen,

1 #!/bin/bash
2 echo -n $'3'"_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"$'3\\'

e o conteúdo de / etc / bashrc,

 24   screen)
 25     if [ -e /etc/sysconfig/bash-prompt-screen ]; then
 26       PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
 27     else
 28     PROMPT_COMMAND='echo -ne "3_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "3\"'
 29     fi
 30     ;;

Desabilitei a tela bash-prompt renomeando-a - isso corrigiu-a. É totalmente possível que haja uma correção na linha de prompt da tela bash-prompt na versão mais recente da tela para o RHEL 5. O erro é visto na versão de tela 4.00.03 (FAU) 23-Oct-06.  (Notei uma atualização na fila, que está sendo instalada enquanto eu escrevo isso.)

    
por vergueishon 26.01.2011 / 19:02

2 respostas

1

Seu prompt tem um erro em sua definição. Deve ser da seguinte forma:

PS1='\[non-printing-sequence\]printing-sequence'

Por exemplo:

PS1='\[3[1;36m\]\u\[3[0m\]@\[3[1;34m\]\h\[3[0m\]\$ '

que seria mostrado como um nome de usuário ciano e um nome de host azul.

De alguma forma, você está recebendo literal \[ na saída. Verifique os seus colchetes literais e de escape para se certificar de que estão corretos.

    
por 26.01.2011 / 19:21
0
/etc/sysconfig/bash-prompt-screen 

tem um extra '\'

Isso significa que precisamos encurtá-lo para o seguinte, para fazer com que o extra '\' desapareça!

#!/bin/bash
echo -n $'3'"_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"$'3\'

Nota: boas notícias! Esta é apenas uma configuração de tela.

    
por 15.02.2011 / 23:28