Zeigen Sie den freien Speicherplatz dynamisch in der Eingabeaufforderung an

1

Wie kann ich den freien Speicherplatz auf einem Laufwerk dynamisch in meiner Eingabeaufforderung anzeigen? Mit dynamisch meine ich, dass jedes Mal, wenn die Eingabeaufforderung nach dem Ausführen eines Befehls neu generiert wird, der verbleibende freie Speicherplatz aktualisiert wird.

Bisher habe ich es versucht, aber aus irgendeinem Grund wird es nicht aktualisiert.

PS1="$PS1[free: $(df -h / | tail -1 | awk '{print $4}')] "

Ortix92
quelle

Antworten:

2

Ich habe vergessen, dass ich dem $Schild entkommen muss ... Das ist jetzt der Code:

PS1="$PS1[free: \$(df -h / | tail -1 | awk '{print \$4}')] "

Ortix92
quelle
1
Ich schlage vor, die Option df -Pfür den Fall hinzuzufügen, dass die Ausgabe zweizeilig ist.
Cyrus
1
Und inline das tailin awk, um die Last davon zu reduzieren, da es eine Menge Male laufen wird. df -Ph / | awk '{ n = $4 } END { print n }'mit dem Backslash vor dem, $4wenn Sie das in doppelte Anführungszeichen setzen.
Tripleee
0

Sie müssen die Umgebungsvariable PROMPT_COMMAND verwenden.

Diese Bash-Umgebungsvariable kann bei jedem Drücken der ENTER-Taste Befehle ausführen.

export PROMPT_COMMAND = "FREESP =" $ (df -h | tail -1 | awk '{print $ 4}') ""

export PS1 = "PS1 [kostenlos: $ FREESP]"

Vince Sh
quelle