De acordo com o link , a opção checkwinsize
pode ser necessária se você percorrer o histórico de comandos:
shopt -s checkwinsize
Eu estou escrevendo um programa que imprime linhas coloridas, e quanto mais eu faço com ele, mais eu me vejo trabalhando em torno de problemas de quebra de linha que surgem.
É um tipo de terminal escrito em php, aqui está o prompt:
$return = readline("3[44m3[1;37m{$this->text}>>3[0m ");
Se eu percorrer o histórico, o meu texto sai por 10 caracteres e, se eu digitar 21 caracteres e excluir um, ele apaga toda a linha e começa a excluir os caracteres da linha acima. Isso está em um console com 47 colunas de largura
Se eu tentar adicionar escapes
$return = readline("\[3[44m3[1;37m\]{$this->text}>>\[3[0m\] ");
em seguida, ele imprime os colchetes ... mesmo se eu adicionar barras invertidas duplas.
\[\][timer]>>\[\]
Eu acho a mesma coisa para echo -e
, não tenho certeza do que está acontecendo.
Por fim, se eu modificar o PS1, tudo funcionará bem.
[mike@crest ~]$ export PS1="\[3[44m3[1;37m\][timer]>>\[3[0m\] "
[timer]>>
O que estou perdendo aqui?
De acordo com o link , a opção checkwinsize
pode ser necessária se você percorrer o histórico de comandos:
shopt -s checkwinsize