9 votes

Comment réinitialiser le terminal avant l'exécution d'une commande ?

J'ai cherché à pimenter mon expérience du terminal en ajoutant, entre autres, de la couleur. J'ai utilisé le tput pour construire une invite agréable à regarder. C'est une partie de mon .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}"

Remarquez les ${REVERSE} (ou $(tput rev) ) à la fin de l'invite, ce qui fait ressortir les commandes que je tape en ajoutant une couleur de fond.

enter image description here

Mon problème cependant est que, lors de l'exécution d'une commande, le style n'est pas automatiquement réinitialisé en appuyant sur la touche enter qui, dans ce cas, ajoute également un fond vert indésirable à la sortie de la commande. Comment puis-je réinitialiser le terminal juste avant l'exécution de la commande ?

enter image description here

4voto

XTL Points 690

Ce que vous cherchez dans BASH est équivalent à ce qui est intégré precmd dans ZSH. Cette fonction intégrée serait exécutée avant l'exécution d'une commande. Une solution de contournement est mentionnée dans https://superuser.com/questions/175799/does-bash-have-a-hook-that-is-run-before-executing-a-command . J'espère que cela vous donnera une idée de la façon de résoudre votre problème. La réinitialisation doit être appelée dans cette fonction.

2voto

Igor Zelaya Points 2266

Essayez le reset (disponible à l'adresse /usr/bin/reset ) ou tput reset .

Ajout de ${RESET} à la fin de l'invite semble fonctionner.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X