My Bash Prompt définit actuellement la barre de titre xterm en utilisant la séquence suivante:
PS1='\033]0;\u@\h>\w\007'
Existe-t-il un moyen simple d'afficher la commande actuelle dans la barre de titre. Par exemple, si je suis en train de suivre un fichier en utilisant tail -f foo.log
, je veux que ma barre de titre dise tail -f foo.log
.
bash
prompt
xterm
window-title
dogbane
la source
la source
.bashrc
commande après chaque commande dans mon shell, j'obtiens cette sortie0;%s@%s:%s" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}
. Je suppose que je peux supprimer cette sortie en affectant la commande trap àPS1
? Cependant,PS1=trap 'echo -ne "\033]0;$BASH_COMMAND\007"' DEBUG
ne fonctionne pas. Cela conduit à l'erreurbash: echo -ne "\033]0;$BASH_COMMAND\007": command not found
.trap
commande en tant que commande distincte , de ne pas l'affecter à PS1.(Inspiré par cette réponse SU )
Vous pouvez combiner quelques astuces bash:
$BASH_COMMAND
contient la commande en cours d'exécutionAlors, piègez DEBUG et demandez au gestionnaire de définir le titre sur
$BASH_COMMAND
:Cela gardera le titre modifié jusqu'à ce que quelque chose d'autre le change, mais tant que votre
$PS1
reste le même, ce ne sera pas un problème - vous démarrez une commande, le gestionnaire DEBUG change la barre de titre, et lorsque la commande se termine bash dessine un nouveau invite et réinitialise à nouveau votre barre de titre.Un conseil utile trouvé ici (également d'où vient cette réponse SU) est d'inclure:
Cela fera bash propager le piège DEBUG à tous les sous-shell que vous démarrez; sinon la barre de titre n'y sera pas modifiée
la source
ssh
/dev/tty
au lieu de stderr?J'ai travaillé autour de ma propre solution à partir de divers postes. Cela crée un titre contenant l'utilisateur, le nom d'hôte, pwd, tty et la commande actuellement exécutée (pour bash).
Cela ressemble à ceci (aucune commande en cours d'exécution):
Et comme ça (exécuter une commande):
Quelque part dans le .bashrc, j'ai étendu PS1:
Ajoute la commande actuelle, en utilisant l' historique 1 et l' interruption :
N'hésitez pas à vous adapter à vos besoins.
la source