[gelöst] Variabel $PATH | env | Pfad erweitern

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Rubberduck
Beiträge: 177
Registriert: 14.07.2013 21:48:19
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Langenfeld Rheinland

[gelöst] Variabel $PATH | env | Pfad erweitern

Beitrag von Rubberduck » 26.08.2013 15:42:53

Hallo,

ist es möglich den Pfad [$PATH] mit nur einer Angabe um Ordner und Unterordner zu erweitern.
Ich habe sehr viele Skripte in verschiedensten Ordnern unterhalb von /Skripte/ liegen.

Leider funktioniert ein export...../Skripte/* nicht.

Muss ich wirklich jeden Pfad bis zum Ende hin einzeln aufführen?

Gruß
Rubberduck
Zuletzt geändert von Rubberduck am 07.09.2013 22:17:22, insgesamt 1-mal geändert.

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: Variabel $PATH | env | Pfad erweitern

Beitrag von Cae » 26.08.2013 15:50:07

Code: Alles auswählen

PATH="$(find /Skripte/ -type d | tr '\n' :)$PATH"
Soherum ist es einfacher zu schreiben, aber ein /Skripte/foo/passwd wuerde immer anstatt dem wohl eigentlich gemeinten /usr/bin/passwd aufgerufen werden. Daher tut man benutzerdefinierte Pfade normalerweise an's Ende vom $PATH.

... aber du willst deine Skripte wohl eher nach /usr/local/bin/ oder /usr/local/sbin/ verschieben. Dafuer sind diese Pfade schliesslich gedacht. Zur Not kann man auch symlinken.

Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
Rubberduck
Beiträge: 177
Registriert: 14.07.2013 21:48:19
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Langenfeld Rheinland

Re: Variabel $PATH | env | Pfad erweitern

Beitrag von Rubberduck » 26.08.2013 16:04:29

Danke für deine Antwort.

Mein OS ist nicht Linux,
meine Skripte liegen auf einem Samba Share und werden von Windows aus bearbeitet, dass macht es für mich sehr viel
einfacher. Diesen Skripte Ordner möchte ich aber gern im $PATH wissen, da ich sie natürlich über Puty/ssh starte.

Meine PATH sieht momentan so aus
Erweitert habe ich in /etc/bash.bashrc

Code: Alles auswählen

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/share/06_Skripte/qnap
Wie soll ich deine Antwort dort einbauen? Einfach ans Ende setzen?

Code: Alles auswählen

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/share/06_Skripte/qnap:(find /Skripte/ -type d | tr '\n' :)$PATH

uname
Beiträge: 12405
Registriert: 03.06.2008 09:33:02

Re: Variabel $PATH | env | Pfad erweitern

Beitrag von uname » 26.08.2013 16:19:23

Ich habe das nie probiert aber ich gehe diese Art von Problemen so an.

Eintragen erst mal so:

Code: Alles auswählen

P="$(find /Skripte/ -type d | tr '\n' :)$PATH"
echo $P
Nun sollte es eine entsprechende Ausgabe geben.

Beim nächsten Mal dann:

Code: Alles auswählen

P="$(find /Skripte/ -type d | tr '\n' :)$PATH"
PATH=$P
Und wenn das läuft dann natürlich so:

Code: Alles auswählen

PATH="$(find /Skripte/ -type d | tr '\n' :)$PATH"
Wobei mit den Anführungszeichen wäre ich mir nicht so sicher. Ob dein Eintrag geht weiß ich nicht. Sowas würde ich aber immer über mindestens 2 Zeilen schreiben oder am Ende das PATH weglassen.

Benutzeravatar
Rubberduck
Beiträge: 177
Registriert: 14.07.2013 21:48:19
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Langenfeld Rheinland

Re: Variabel $PATH | env | Pfad erweitern

Beitrag von Rubberduck » 26.08.2013 16:36:19

Alright, das funktioniert soweit.
Aufrufen eines Skripts unterhalb von /Skripte/
Also mit anderen Worten, man muss wirklich jeden Pfad einzeln aufführen....wenn auch durch eine Befehlszeile..

Kannst du dir vielleicht noch erklären, warum am Ende von Ausgabe von $PATH immer steht
Datei nicht gefunden?

uname
Beiträge: 12405
Registriert: 03.06.2008 09:33:02

Re: Variabel $PATH | env | Pfad erweitern

Beitrag von uname » 26.08.2013 16:39:45

Kannst du dir vielleicht noch erklären, warum am Ende von Ausgabe von $PATH immer steht
Scheinbar führst du $PATH aus. Das ist natürlich falsch. Richtiger wäre eher

Code: Alles auswählen

echo $PATH
Somit alles in Ordnung.

Antworten