Coloque o seguinte em um arquivo:
command1()
{
if [ "$BASH_COMMAND" != command2 ]
then
command_flag=1
fi
return 0
}
trap command1 debug
command2()
{
if [ "$command_flag" ]
then
echo ""
fi
command_flag=
}
PROMPT_COMMAND=command2
Eu aconselho você a alterar os nomes command1 , command2 e command_flag
para valores que você provavelmente não digita. Então source desse arquivo.
(Ou apenas coloque o acima em seu .bashrc .)
O comando trap command1 debug faz com que a função command1 seja chamada
sempre que você digitar um comando. A função command1
define o sinalizador command_flag para indicar que houve um comando.
(A função command1 não é chamada quando você aperta Enter .)
PROMPT_COMMAND=command2 faz com que a função command2 seja chamada
sempre que o shell estiver prestes a emitir um prompt PS1 .
A função command2 verifica o sinalizador command_flag
para ver se você digitou um comando ou apenas Enter .
Se você digitou um comando, command_flag será definido
e command2 escreverá uma linha em branco na tela.
(Se você descobrir como criar um espaço vertical que seja uma fração de uma linha,
altere o comando echo .)
Se você acabou de pressionar Enter , command_flag não será definido.
Em seguida, limpe o sinalizador para que o próximo prompt seja feito corretamente.
Observe que a função command1 é chamada
quando o shell executa a função command2 ;
portanto, command1 precisa torná-lo um caso especial
(não conta como um comando).