Mit der Bash-Anweisung PROMPT_COMMAND, die – wenn überhaupt – üblicherweise nur in der „.bashrc“ genutzt wird, lassen sich situativ dynamische Informationen abrufen. Diese erscheinen nach jedem eingegebenen Befehl oder auch nach leerer Eingabetaste. Sinnvoll ist dies aber nur für Zustände und Ereignisse, die sich ständig ändern.
Ungeachtet eines aktuell aktiven Prompt_Commands kann die Bash-Shell einen solchen jederzeit aktivieren oder wechseln. Eine hübsche Info für den Prompt, die man aber nicht immer benötigt und viel Platz wegnimmt, ist beispielsweise die automatische Anzeige der enthaltenen Unterordner. Dies lässt sich etwa mit folgendem Befehl erreichen:
PROMPT_COMMAND="tree -ad -L 1 --noreport"
Der Befehl tree liefert mit „-ad“ alle Verzeichnisse (auch die versteckten), aber nicht die Dateien. Der tree-Schalter „-L 1“ begrenzt das Tree-Kommando auf den aktuellen Ordner. Wenn Sie mit dieser dynamischen Prompt-Anweisung mit „cd“ in ein Verzeichnis wechseln, erhalten Sie daher immer die enthaltenen Unterordner angezeigt.
Ein weiteres Beispiel ist die Anzeige des aktuellen RAM-Status
PROMPT_COMMAND="free -m | grep -B 1 Speicher:"
und das letzte Beispiel meldet bei jedem Befehl
PROMPT_COMMAND="ip -statistics address show enp2s0 | grep -A 3 'RX:'"
die empfangenen und gesendeten Bytes und Pakete der Netzwerkschnittstelle enp2s0. Alle genannten Beispiele sind natürlich zu umständlich, um sie bedarfsweise manuell einzugeben. Wie immer ist eine Alias-Abkürzung wie etwa folgende
alias navi='PROMPT_COMMAND="tree -ad -L 1 --noreport"'
in der Datei „~/.bashrc“ die klassische Lösung.
Wie bekommt man die Extra-Infos wieder weg? Am einfachsten durch Schließen der Shell mit „exit“ oder Beenden des grafischen Terminalfensters. In der laufenden Shell restauriert
source ~.bashrc
den standardmäßigen Prompt_Command. Wenn in der
„~/.bashrc“ kein Prompt_Command definiert ist, dann leert der schlichte Löschbefehl
PROMPT_COMMAND=
die Variable.

