Wie überprüft man, ob Git von .bashrc installiert ist

8

Ich benutze Git, ich habe die folgende Zeile in .bashrc geändert, um den aktuellen ausgecheckten Zweig in der Eingabeaufforderung anzuzeigen, wenn pwd ein Git Repo ist. Betriebssystem, das ich benutze, ist: Ubuntu 32bit

%Vor%

Ich benutze diese Zeile, um den aktuellen Zweig des Git-Repos in der Shell-Eingabeaufforderung anzuzeigen, anstelle der obigen Zeile.

%Vor%

Das Problem ist, wenn ich es Freunden gebe, Shell gibt Fehler __git_ps1: command not found , beim Navigieren zwischen den Verzeichnissen, wie das Skript für git Zweig beim Ändern von Verzeichnissen sucht. Wie überprüfe ich, ob Git installiert ist und führe die Verzweigungsüberprüfung nur aus, wenn git installiert ist?

Bearbeiten: Wie von Ayckoster vorgeschlagen, kam ich mit den folgenden Codezeilen auf:

%Vor%

Jetzt, jedes Mal, wenn ich das Terminal öffne, bekomme ich git --version ausgegeben auf Bildschirm, während Git installiert ist, und ich bekomme den folgenden Fehler, während ich das Terminal öffne, wenn Git nicht installiert ist:

%Vor%

Wie lösche ich das? Danke.

Letzte Änderung:

Dies ist der Code, den ich mir schließlich ausgedacht habe, Fühlen Sie sich frei, diesen Code in Ihrem .bashrc zu verwenden, um den aktuellen git branch in Ihrer Shell-Eingabeaufforderung anzuzeigen

%Vor%     
Sathish Manohar 03.09.2011, 10:33
quelle

7 Antworten

19

Versuchen Sie,

auszuführen %Vor%

Abhängig vom Rückgabewert $? können Sie davon ausgehen, dass git installiert ist oder nicht. Wenn Sie 0 erhalten, ist alles in Ordnung, sonst ist Git nicht installiert. Sie können auch test this.

Dies setzt voraus, dass alles korrekt eingerichtet ist und git in Ihrem $ PATH ist und der Befehl git nicht umbenannt wird.

Benutze es so

%Vor%     
ayckoster 03.09.2011, 10:49
quelle
4

mit which sollte helfen. Wenn es nichts zurückgibt - & gt; Git ist nicht installiert.

    
Jonathan Liuti 03.09.2011 10:47
quelle
2

Ich empfehle die Verwendung von hash , da es sich um eine integrierte Komponente handelt, sodass Sie keinen neuen Prozess erstellen müssen. Es speichert auch den Befehl.

%Vor%     
Mu Qiao 03.09.2011 10:49
quelle
2

Verwenden Sie type :

%Vor%     
Foo Bah 03.09.2011 14:51
quelle
0

Sie können Folgendes verwenden, um Ihre Bash-Eingabeaufforderung abhängig von der Existenz von Git bedingt zu ändern:

%Vor%

Der Linux Tutorial Blog-Eintrag "Tutorial: Bedingungen in bash scripting (if-Anweisungen ) " zeigt die verschiedenen verfügbaren if-Bedingungen an, z. B. -a , um das Vorhandensein einer Datei zu überprüfen.

Das Problem, das ich bei dieser Lösung sehe, ist, dass es von der Position von git abhängt (d. h. /usr/local/bin/ oder /usr/local/ im obigen Beispiel). Dies ist möglicherweise kein Problem, da git auf Ubuntu in /usr/local/ gefunden wird, wenn git über apt-get installiert wird.

Wenn Sie nicht von der installierten Position von git abhängig sein möchten, können Sie die Befehlsersetzung verwenden, um die Ergebnisse des Befehls which anzuzeigen.

%Vor%

Die Verwendung von which wurde jedoch von anderen Bewertern als "böse" eingestuft. (Obwohl ich daran interessiert sein würde, dass sie ihre Argumentation für solche Aussagen konkretisieren, anstatt nur die Erklärung abzugeben, ohne ihre Argumentation zu liefern.)

    
Matthew Rankin 03.09.2011 11:42
quelle
0
%Vor%     
alex 07.12.2013 03:43
quelle
0

Das hat für mich funktioniert:

GIT_VERSION="$ (git --Version)" if ["$ GIT_VERSION"!="Befehl nicht gefunden"]; dann   Echo "Git bereits" installiert sonst     Echo "Git fehlt" fi

    
JoelEspinal 25.05.2015 21:11
quelle

Tags und Links