Eu uso o shell bash
$ bash --version
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
$
Às vezes, ao digitar um comando no prompt que é bastante longo e não cabe na linha atual, em vez de exibir os caracteres extras na próxima linha, o bash inicia novamente na linha atual. Substituindo os caracteres que estavam lá e fazendo uma bagunça.
o que deveria acontecer:
|---------------------------------------------|
| $ my big long command takes a lot of argumen|
| s and does not fit in a single line |
| |
|---------------------------------------------|
o que acontece:
|---------------------------------------------|
| s and does not fit in a single linef argumen|
| |
| |
|---------------------------------------------|
- O problema é intemittente
- Se eu redimensionar minha janela do shell para uma largura muito pequena, o comportamento normal será restaurado
Alguém tem alguma idéia do que está acontecendo aqui?
$ echo $TERM
xterm
$ echo $PS1
\[\e[30m\][\t]\[\e[0m\]\[\e]0;\w\a\]\[\e[30m\][\W]$
$
TERM
definido? Você tem alguma cor ou outra sequência de formatação na suaPS1
?shopt -s checkwinsize
ou coloque no seu~/.bashrc
. (O comando fazbash
reavaliar o tamanho da janela cada vez que o prompt é exibido.)Respostas:
Seu shell está ficando confuso sobre a largura do seu terminal. Sempre que isso acontece, um
eval `resize`
deve redefinir tudo corretamente.fonte