Beliebt

Bash-Eingabeaufforderung: Zeigt das aktuelle Verzeichnis am Ende der Zeile an - Befehlszeile, Bash, Eingabeaufforderung

Wie kann ich meine Bash-Eingabeaufforderung so einstellen, dass sie etwas auf dem anzeigt? Ende der Zeile (wobei sich der Cursor wie gewohnt am Anfang derselben Zeile befindet)? Insbesondere m├Âchte ich eine abgek├╝rzte Einzelzeichen-Eingabeaufforderung anzeigen, wie z $ oder > Danach kann ich meinen Befehl eingeben. Aber ich m├Âchte das aktuelle Arbeitsverzeichnis am Ende der Zeile sehen k├Ânnen, wo es nicht "in meinem Gesicht" ist.

Es ist mir egal, was passiert, wenn ich einen wirklich langen Befehl eingebe. Er kann das aktuelle Arbeitsverzeichnis ├╝berschreiben oder was auch immer meine Eingabeaufforderung dort anzeigt.

Alternativ macht es mir nichts aus, wenn die Aufforderung dieDas aktuelle Arbeitsverzeichnis wird oben rechts oder oben links oder unten rechts / links auf dem Bildschirm angezeigt. Ich m├Âchte es einfach nicht immer im Gesicht haben, aber ich m├Âchte, dass es sichtbar ist.

Antworten:

2 f├╝r Antwort Ôäľ 1

Ich konnte PS1 auf etwas einstellen, das den aktuellen Pfad am Ende der Eingabeaufforderungszeile ausgibt:

PS1="[$(for ((i=1; i < COLUMNS - ${#PWD} - 3; ++i)) ; do printf " " ; done ; printf "$PWD")]"

Aber es gibt einige Probleme, die ich nicht l├Âsen konnte:

  1. Der Pfad verschwindet, wenn Sie dr├╝cken R├╝cktaste
  2. Trotzdem ist der gesamte Ausdruck in einem Nullbreiten-Marker eingeschlossen [...], sobald du auch das druckst $ oder >bewegt sich der Cursor ganz nach rechts.

Ich habe Leute gesehen, die benutzt haben PROMPT_COMMAND=pwd Stattdessen wird der Pfad angezeigt, aber die Anzahl der Zeilen mit Ihren Befehlen im Terminal verringert.

Eine andere M├Âglichkeit ist, Ihr Terminal oder Ihren Bildschirm / tmux so zu konfigurieren, dass der Pfad irgendwo angezeigt wird. In xterm funktioniert beispielsweise Folgendes:

PS1="[e[me]0;Wa]$ "

Die Sequenz e[me]0;...a Legt den Titel des Fensters fest. Auf dem Bildschirm ist es "33k3313433kTITLE33134".