Come resettare il terminale prima dell'esecuzione del comando?

5

Ho cercato di ravvivare l'esperienza del mio terminale, tra le altre cose, aggiungendo un po 'di colore. Ho usato il comando tput per creare un prompt dall'aspetto gradevole. Questo fa parte del mio .bash_profile :

BLACK=$(tput setaf 0)
RED=$(tput setaf 1)
GREEN=$(tput setaf 2)
YELLOW=$(tput setaf 3)
BLUE=$(tput setaf 4)
MAGENTA=$(tput setaf 5)
CYAN=$(tput setaf 6)
WHITE=$(tput setaf 7)
BOLD=$(tput bold)
REVERSE=$(tput rev)
RESET=$(tput sgr0)

export PS1="${WHITE}$(date "+%H:%M") ${MAGENTA}\u${WHITE}@${MAGENTA}$(scutil --get ComputerName)${WHITE}:${MAGENTA}\w\n${GREEN}\$ ${REVERSE}"

Notare il $ {REVERSE} (o $(tput rev) ) alla fine del prompt, il che rende i comandi che digito risaltando aggiungendo un colore di sfondo.

Ilmioproblematuttaviaèchequandosiesegueuncomandoqualsiasi,lostilenonvieneautomaticamenteresettatopremendoinvio,cheinquestocasoaggiungeunosfondoverdeindesideratoall'outputdelcomando.Comepossoresettareilterminaleprimadell'esecuzionedelcomando?

    
posta Gerry 09.08.2012 - 23:43
fonte

2 risposte

3

Quello che stai cercando in BASH è equivalente a quello che è built-in precmd in ZSH. Questa funzione incorporata verrebbe eseguita prima dell'esecuzione di un comando. Un lavoro è menzionato in link . Spero che ti dia un suggerimento su come risolvere il tuo problema. Il reset deve essere chiamato all'interno di questa funzione.

    
risposta data 10.08.2012 - 03:29
fonte
1

Prova il comando reset (disponibile a /usr/bin/reset ) o tput reset .

L'aggiunta di ${RESET} alla fine del prompt sembra funzionare.

    
risposta data 10.08.2012 - 01:36
fonte

Leggi altre domande sui tag