2016-05-11 4 views
0

ich die folgende Zeile in meiner ~/.bashrc Datei hinzugefügt haben meine Registerkarte Titel zu ändern:meine PROMPT_COMMAND Ändern fügt eine neue Zeile

export PROMPT_COMMAND='echo -e "\033];My Machine\007"'

Nachdem ich die Datei beziehen, meine prompt eine neue, leere Zeile ergänzt nach jedem Befehl. Zum Beispiel:

user machine ~:> pwd 
/a/path/whatever 

user machine ~:> 

Ich möchte nicht, dass dritte, leere Zeile da sein. Ich habe meine Quelle .bashrc mit und ohne die PROMPT_COMMAND Leitung geprüft und ich weiß, dass dies die beleidigende Linie ist. Irgendwelche Ideen?

+0

Scheint mir, dass Sie * tatsächlich * PS1 ändern wollen: 'export PS1 =" Meine Maschine \ W:> "' – andlrc

Antwort

1

Versuchen Sie folgendes:

export PROMPT_COMMAND='echo -en "\033];My Machine\007"'

1

Die Band-Aid-Lösung ist echo -en zu verwenden, wenn Ihr echo unterstützt, dass (die Neue-Zeile unterdrücken).

Ich glaube nicht, ist es notwendig, PROMPT_COMMAND hier zu verwenden, können Sie auf Ihre PS1 schreibe einfach:

PS1="\[\033]0;My Machine\007\007\]$PS1" 

Die \[ \] sicher, dass die Breite von dem, was zwischen ihnen nicht weg wirft die Zeilenlänge zählen.

Es gibt vordefinierte Escape-Sequenzen, so dass Sie den Computernamen nicht fest codieren müssen, siehe the manual. Zum Beispiel diese

PS1="\[\e]0;\[email protected]\h: \w\a\]$PS1" 

verwendet \e und \a statt \033 \ und \007 für Flucht- und Glocke und setzt auf die Registerkarte Titel [email protected]: currentdir.

Siehe auch die relevant section in the Bash Prompt HOWTO und die Xterm title HOWTO.

+0

Warum 'PS1' über' PROMPT_COMMAND'? – smilebomb

+0

Es ist einfacher und muss nicht für jede neue Eingabeaufforderung einen Befehl ausführen ...? –

+0

Meine Wahl von 'PROMPT_COMMAND' bezieht sich auf ein anderes Problem, das ich hatte: http://superuser.com/questions/1073607/source-by-bashrc-when-i-exit-an-sssh-session – smilebomb