Bash-Skript-Ordner zum Pfad hinzufügen?

16

Ich habe einige Bash-Skripte in einem Anwendungsordner, die ich gerne verwenden würde, als wären sie auf meinem Weg. Wenn es sich um reine Anwendungen handelte, würde ich das Verzeichnis einfach zu ~ / .bashrc hinzufügen, aber dies sind Skripte.

z.B:

~/a_dir/another_dir/foo.sh
~/a_dir/another_dir/foo-gui.sh

Gibt es eine gute Möglichkeit, einen Pfad einzurichten, damit ich sie aus einem beliebigen Verzeichnis verwenden kann?

z.B:

totally/different/path$ bash foo.sh
Abe
quelle
Sie können dies nicht mit bash foo.sh, sondern mit foo.shausführen, nachdem Sie die Berechtigung exec erteilt und sie in $ PATH abgelegt haben.
Elias

Antworten:

21

Ja, Sie können dem Systempfad ein beliebiges Verzeichnis hinzufügen. Eine Möglichkeit hierfür ist die Aktualisierung der PATH-Definition (Umgebungsvariable). Sie können dies in Ihrem tun, .bashrcindem Sie die folgenden Zeilen hinzufügen:

PATH="/your/script/dir:${PATH}"
export PATH

Ich füge meine Skripte gerne hinzu $HOME/.local/bin/(das ist ein verstecktes Verzeichnis), damit mein Hauptverzeichnis sauberer bleibt.

Ihr Verzeichnis wird nicht sofort in die PATH-Variable eingefügt, es sei denn, Sie führen es aus source .bashrc.

Sie können dem Pfad mehrere Verzeichnisse hinzufügen. Bitte konsultieren Sie die BASH-Dokumentation, wenn Sie den Code nicht verstehen.

Die vorherige Methode funktioniert nur für Ihren Benutzer. Wenn Sie ein Skriptverzeichnis für alle Benutzer hinzufügen müssen, gehen Sie wie folgt vor : bodhi.zazen und fügen Sie Ihre Skripte hinzu /usr/local/bin.

Severo Raz
quelle
Das Hinzufügen vor überschreibt die Systemskripte - was bedeutet, dass es einfach sein könnte, sie zu ersetzen, was nicht immer gut ist.
Wilf
9

IMO ist die beste Methode, die Skripte zu ~ / bin hinzuzufügen

mkdir ~/bin

~/binsollte automatisch zu Ihrem Pfad hinzugefügt werden. Wenn nicht, fügen Sie dies hinzu~/.bashrc

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

Wenn Sie möchten, dass sie für alle Benutzer verfügbar sind, fügen Sie sie zu hinzu /usr/local/bin

Panther
quelle
In diesem Fall würde ich empfehlen, da es sich um Skripte aus einer Anwendung handelt, symbolische Links für die Skripte im zu platzieren ~/bin, um die Wartbarkeit zu verbessern.
Elias
3

eine andere Lösung

  1. Fügen Sie den Pfad zum ~/.bashrcÖffnen mit vim hinzu$ vim ~/.bashrc

    Beispiel:

    # add extra paths export PATH=$PATH:~/Scripts

  2. Sobald der Pfad hinzugefügt wurde, führen Sie Folgendes aus:

    $ source ~/.bashrc

  3. Wenn es richtig hinzugefügt wird, sollte es keine Fehler geben.

Zulucoda
quelle