Fixou as linhas de status do terminal em vez do prompt do shell?

2

É comum empinar informações úteis no prompt do shell do Unix, mas tenho muitas coisas que quero manter atento para encaixá-las em um único prompt: janela de tela atual do Gnu, diretório atual, hora atual, nome do host, ramo atual do git, fase da lua, você-nome-lo.

Seria melhor ter um status fixo região na parte inferior (ou superior) do terminal para mostrar todas essas informações e deixar o prompt sozinho. (Eu escrevi "região de status fixo" ao invés de "linha de status fixo" porque eu não quero me limitar a uma linha.)

(Esta região, é claro, não seria afetada pela saída interativa normal).

Existe um Unix padrão para implementar uma região de status fixa e permitir que eu o atualize por meio da função precmd ?

    
por kjo 08.04.2013 / 22:05

3 respostas

2

Você pode dividir sua tela horizontalmente em screen , definir uma área do tamanho desejado para sua região de status e executar alguns watch -t cat ~/.status nela e, em seguida, preencher o conteúdo dessa ~/.status no seu precmd() .

    
por 08.04.2013 / 22:30
1

Se o seu terminal suportar o endereçamento do terminal, salvar o cursor e restaurar o cursor, isso pode funcionar:

PS1="$(tput sc;tput cup 0 0;tput rev;tput el)\u@\h \W$( tput rc;tput sgr0)\$ "

Mas cuidado com o fato de que o comando pode ser difícil de editar, pois o shell fica confuso sobre onde ele está no buffer de entrada.

Em bash , você pode dizer para ignorar as seqüências de controle do cursor usando colchetes de barra invertida:

PS1="\[$(tput sc;tput cup 0 0;tput rev;tput el)\]\u@\h \W\[$( tput rc;tput sgr0)\]\$ "

Se isso não funcionar, tente enviar a saída diretamente para o terminal:

TOSL=$(tput sc;tput cup 0 0;tput rev;tput el)
FROMSL=$(tput sgr0; tput rc)
PS1='$(echo -n "$TOSL $LOGNAME@$HOSTNAME ${PWD/#$HOME/~}$FROMSL">/dev/tty)\$ '
    
por 09.02.2015 / 16:15
0

AT & T O Unix tinha o comando sysline , que fornecia uma linha de status para terminais que não o possuem no hardware. Talvez exista um equivalente GNU até agora ...

    
por 02.05.2013 / 09:53

Tags