Formatiere meine $ PS1 nach x Zeichenmenge

391
cmwright

Ich suche nach einer Möglichkeit, meine PS1-Variable zu einer bestimmten Anzahl von Zeichen zu zwingen.
Es sieht momentan so aus:

$PS1="\W $"

und ich versuche, die gleiche Anzahl von Zeichen unabhängig von der Länge des aktuellen Ordnernamens beizubehalten.

Zum Beispiel werden sowohl Dokumente als auch Ablage als 10-Zeichen-Zeichenfolgen angezeigt, wobei die linke Seite meines Terminals immer dieselbe Breite hat.

1
Wie willst du das formatieren? So etwas wie "LongFileName" -> "LongFileNa"? Awk kann dies übrigens auch: `echo 12345 | awk '' `. Wie man es in $ PS1 stopft, habe ich keine Ahnung. new123456 vor 13 Jahren 0
@ new123456 das ist genau mein thema. Ich kann tun, was Sie sagen, aber wenn Sie $ pwd verwenden, erhalten Sie nur Ihr ursprüngliches Anmeldeverzeichnis. Es wird nicht aktualisiert, wenn Sie das Verzeichnis wechseln cmwright vor 13 Jahren 0
`bash` hat die Variable` PROMPT_COMMAND`, hat jedoch nicht dieselbe Semantik wie `PS1` (insbesondere die Escape-Zeichen). `zsh` kann dies mit` PROMPT` (es wird bei jedem Durchlauf ausgewertet). new123456 vor 13 Jahren 0

1 Antwort auf die Frage

0
Iain

Wenn Sie ein Xterm oder ähnliches verwenden, können Sie das aktuelle Verzeichnis in die Titelleiste einfügen und anschließend eine feste Aufforderung erhalten

PS1='\[\e]0;\h \w\007\] \u$ ' 

setzt den aktuellen Hostnamen und das aktuelle Verzeichnis in die Titelleiste und macht die Eingabeaufforderung username$zBiain$

Mehr Informationen gibt es hier .