Was ist die beste Vorgehensweise zum Anpassen der Bash-Eingabeaufforderung (auch bekannt als Umgebungsvariable PS1)?

Was ist die beste Vorgehensweise zum Anpassen der Bash-Eingabeaufforderung (auch bekannt als Umgebungsvariable PS1)?

Ich versuche, den Git-Zweignamen zu meiner Bash-Eingabeaufforderung hinzuzufügen, indem ich die PS1Variable wie folgt ändere:

PS1=`echo "$PS1" | sed 's/\\\\\$ $/\$(__git_ps1)\\\\\$ /'`

Und wenn ich das richtig verstehe, wird ein Update ~/.bashrczu Personalisierungszwecken nicht empfohlen. Alle Artikel, die ich gefunden habe, empfehlen ein Update entweder .profileoder .bash_profilezu solchen Zwecken. Ich suche also nach einem perfekten Ort, um diese Zeile einzufügen.

Dies sind die Orte, die ich bisher ausprobiert habe:

  • .profile: nicht bezogen vongnome-terminal
  • .bash_profile: nicht bezogen vongnome-terminal
  • .bash_login: nicht bezogen vongnome-terminal
  • .bash_aliases: funktioniert, aber ich glaube nicht, dass PS1es etwas mit Aliasnamen zu tun hat

Ich verwende Ubuntu Desktop und arbeite in gnome-terminaloder byobu, daher muss ich eine Datei finden, die als Quelle verwendet wird, wenn ich bashin einer X-Umgebung starte. Dann habe ich .bashrcnach anderen Dateien gesucht, die als Quelle verwendet werden, nachdem ein Wert zugewiesen wurde PS1. Es gibt .bash_aliasesund , /usr/share/bash-completion/bash_completiondie meiner Meinung nach für diesen Zweck nicht geeignet sind.

Welche anderen Möglichkeiten gibt es? Und was ist die beste Vorgehensweise zum Anpassen der Bash-Eingabeaufforderung?

Antwort1

Laut dem folgenden HOWTO .bashrcist dies tatsächlich der beste Ort, um $PS1 zu optimieren:

die PS1-Zeichenfolge sollte festgelegt werden .bashrc. Dies liegt daran, dass nicht-interaktive Bashes sich besonders bemühen, PS1 zurückzusetzen. Auf der Manpage von Bash steht, dass das Vorhandensein oder Fehlen von PS1 ein guter Hinweis darauf ist, ob man sich in einer interaktiven oder nicht-interaktiven (d. h. Skript-) Bash-Sitzung befindet.

[...]

daher sollte betont werden, dass in und nicht PS1=..blah..stehen sollte ..bashrc.profile

Quelle:http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/setps.html

Antwort2

Ich stimme @sylvain-pineau zu, dass es in .bashrc liegen sollte.

Ich verwende ein Git-Prompt-Shell-Skript, das ich auf GitHub geforkt habe. Es funktioniert sehr gut mit Git, SVN und HG. Es zeigt Ihnen, in welchem ​​Zweig Sie sich befinden, welche neuen Dateien Sie haben, welche Dateien geändert wurden (in verschiedenen Farben) und den Status Ihres letzten Bash-Befehls.

Du kannst es wie folgt herunterladen:

wget https://raw.githubusercontent.com/stalet/git-prompt/master/git-prompt.sh
chmod +x git-prompt.sh

Dann verwende ich in .bashrc einen Test, um zu sehen, ob mein Git-Prompt-Skript verfügbar ist, und lade es dann als Quelle herunter:

[[ -s ~/config/git-prompt.sh ]] && source ~/config/git-prompt.sh

Haftungsausschluss: Ich bin ein Committer für das GitHub-Projekt „Git-Prompt“.

verwandte Informationen