Fügen Sie android-studio / bin / zur Umgebungsvariablen PATH hinzu

7

Kürzlich habe ich Android Studio installiert. Jetzt möchte ich android-studio / bin / dauerhaft zur Umgebungsvariablen PATH als Session-wide environment variablesund nicht als hinzufügen System-wide environment variables. Dazu habe ich versucht, ~/.profilewie hier beschrieben zu bearbeiten . Also habe ich diese am Ende von ~/.profile:

if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH:/usr/local/Android/android-studio/bin"
fi

Dann melde ich mich erneut an, um die Variable zu initialisieren. Aber wenn ich studio.shim Terminal laufe , bekomme ich folgendes:

studio.sh: Befehl nicht gefunden

Hier sind die Ergebnisse von $PATHund echo $PATH:

$ $PATH 
bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:
No such file or directory 
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Auch ich bin mir sicher, dass ~/.bash_profileund ~/.bash_loginnicht existieren. Was verursacht nun das Problem und wie kann ich das lösen?

Bearbeiten:

Ich ändere das Ende ~/.profiledavon, aber es funktioniert nicht:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
    PATH="$PATH:/usr/local/Android/android-studio/bin"
fi
Hasanghaforian
quelle

Antworten:

5

Es sieht so aus, als hätten Sie dieses Code-Snippet bearbeitet:

if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

welches ~/.profilestandardmäßig in enthalten ist.

Die Antwort, die Sie dazu veranlasst hat, ist IMNSHO verwirrend.

Ich würde vorschlagen, dass Sie diesen Code wieder so ändern, wie er vorher aussah, und stattdessen eine neue Zeile darunter hinzufügen:

if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

PATH="$PATH:/usr/local/Android/android-studio/bin"

Wenn Sie sich das nächste Mal anmelden, sollte PATH geändert werden, unabhängig davon, ob es $HOME/binvorhanden ist oder nicht.

Gunnar Hjalmarsson
quelle
Ich habe das versucht, aber es funktioniert nicht. Ich habe die Frage bearbeitet, bitte sehen Sie sie noch einmal.
Hasanghaforian
@hasanghaforian: Ok, ich habe auch meine Antwort bearbeitet, um zu klären.
Gunnar Hjalmarsson
Vielen Dank für Ihre Aufmerksamkeit und Hilfe! Aber wenn ich einen anderen Pfad hinzufügen möchte, muss ich eine weitere Zeile hinzufügen?
Hasanghaforian
1
@ Hasanghaforian: Nicht unbedingt. Der Punkt ist, dass es nicht zwischen ifund sein sollte fi. Solange Sie es behalten, wo es jetzt ist, können Sie sagenPATH="$PATH:/some/directory:/some/other/directory"
Gunnar Hjalmarsson
Sobald der Pfad, was ist der Befehl, um das Programm global auszuführen?
Nick Pineda
-1

OK, hier gibt es ein paar Probleme:

  1. Verwenden Sie echo $PATHstatt $PATHzu überprüfen!

    Der Grund dafür ist, dass Bash $PATHüberall durch den Inhalt dieser Variablen ersetzt $PATHwird. Wenn Sie also nur ausführen , wird versucht, den Inhalt der Variablen auszuführen, was für den Bash-Interpreter Unsinn ist.

  2. Sie sollten den Inhalt , den Sie hinzugefügt hinzufügen , ~/.profileum ~/.bashrcauch.
  3. Stellen Sie sicher, dass dies "$HOME/bin"vorhanden ist, indem Sie ausführen ls -d $HOME/bin. Wenn Sie einen Fehler wie bash: ls: No such file or directory.diesen erhalten, existiert er nicht. Wenn es existiert, sollten Sie eine Ausgabe wie erhalten /home/[username]/bin.

Wenn alle zufrieden sind, sollten Sie bereit sein zu gehen. Wenn nicht, verwenden Sie cd [path_to_studio_directory]; ./studio.shstattdessen einfach diesen Befehl : . Auf diese Weise starten Sie in diesem Ordner und garantieren dessen Ausführung.

Daniel
quelle
Warum ich das hinzufügen muss, ~/.bashrcwenn ich das hier nicht getan habe: help.ubuntu.com/community/EnvironmentVariables . Auch wie kann ich die Existenz von überprüfen $HOME/bin?
Hasanghaforian
1
@hasanghaforian: Diese Empfehlung macht auch für mich keinen Sinn.
Gunnar Hjalmarsson
Weil ~/.bashrcimmer ausgeführt wird, wenn Sie Terminal betreten. Es ist nur eine weitere Überprüfung, um sicherzustellen, dass es passiert. Siehe Bearbeiten zur Überprüfung der Existenz @hasanghaforian
Daniel
1
Wenn Sie ~/.profilePATH bearbeiten, eine Umgebungsvariable, ist der neue Wert in der gesamten Sitzung verfügbar, unabhängig davon, ob Sie das Terminal verwenden oder nicht. Wenn Sie es richtig machen, brauchen Sie keinen "weiteren Scheck". ;)
Gunnar Hjalmarsson
Nun, ich bin auf Fälle gestoßen, in denen ~/.profileüberhaupt nicht verarbeitet wird, also vertraue ich ihm nicht so sehr ...
Daniel