PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Was sagt mir "echo §PATH"?



Susu
06.12.02, 15:21
Hi,

ich weiß zwar inzwischen, dass das eine Shell-Variable ist. Aber was diese nun eigentlich aussagt und wofür sie gut ist, hab ich noch nicht herausgefunden...

Kann mir jemand etwas dazu sagen?

Susu:eek:

marcdevil
06.12.02, 15:24
PATH kennst du nicht? gibts doch auch bei DOS/win9x
da stehen die Pfade drin, die abgesucht werden, wenn du ein programm starten möchtest, aber nicht im programmpfad bist.

es heisst übrigens
echo $PATH
Variablen werden mit $ deklariert.

Susu
06.12.02, 16:54
Original geschrieben von marcdevil
PATH kennst du nicht? gibts doch auch bei DOS/win9x

Naja, es hat ja nicht JEDER mit DOS/win9x gearbeitet:rolleyes:

Wenn ich als z.B. etwas unter /home/benutzerverzeichnis installiere, könnte es sein, dass ich diesen Pfad auch in $PATH eintragen muss, damit ich damit arbeiten kann???

Wie funktioniert denn das eintragen von Pfaden?

Ich habe nämlich auch tierische Probs beim kompilieren. Habs noch nicht hinbekommen, irgendwas aus Quelldateien (tar.gz) hinzubekommen. Bereits versucht: sane-backends-1.0.9, scribus-0.8, k3b-0.74, grip-3.0.3

Manchmal läuft ./configure so durch, manchmal auch nicht. Bei make kommt sowas wie "Qt nicht gefunden", oder es kommt zum schluss ein "all-recursive error" (z. B. bei sane-backends). Da ich das noch nicht ganz durchschaue, dachte ich es könnte was mit irgendwelchen Variablen und Pfaden zu tun haben...?!

Habe nämlich das ganze C/C++-Compiler-Pakte der SuSE 8.1 Prof installiert und zusätzlich noch checkinstall. Wollt mir ja eigentlich ein paar rpms bauen. Aber wie gesagt, bin bis jetzt kläglich gescheitert...:o

Gruß, Susu

melody lee
06.12.02, 17:13
Wenn ich als z.B. etwas unter /home/benutzerverzeichnis installiere, könnte es sein, dass ich diesen Pfad auch in $PATH eintragen muss, damit ich damit arbeiten kann?
Müssen nicht, aber es ist einfach praktischer, nicht jedes mal "/pfad/zum/programm" tippen zu müssen.

Wie funktioniert denn das eintragen von Pfaden?
export PATH=$(echo $PATH:/home/user)
Will heissen: Du exportierst (export PATH) die Variable PATH, nachdem Du an diese ":/home/user" angehängt hast ($echo...).
Lässt sich prima ausprobieren, indem Du anderen Variablen rumspielst, zb "a=hallo ; b=$(echo $a\ du) ; echo $a; echo $b"
Mehr zum Thema bei http://123.koehntopp.de/kris/artikel/unix/shellprogrammierung/ oder hier in der Signatur von mightymike99.

Wenn Du Deine neue $PATH nach dem nächsten Booten auch noch haben willst: Mit Deinem Editor eine der folgenden Dateien anpassen: /etc/profile ~/.profile oder ~/.bash_profile

Die Probleme könnten mit fehlenden Pfaden zu tun haben, aber auch damit, dass die benötgten Bibliotheken einfach nicht installiert sind. ;o)

Susu
06.12.02, 18:24
Original geschrieben von melody lee
export PATH=$(echo $PATH:/home/user)
Will heissen: Du exportierst (export PATH) die Variable PATH, nachdem Du an diese ":/home/user" angehängt hast ($echo...).
Lässt sich prima ausprobieren, indem Du anderen Variablen rumspielst, zb "a=hallo ; b=$(echo $a\ du) ; echo $a; echo $b"

Ehrlich gesagt versteh ich das nicht so ganz. Würde nicht ein "export PATH=$PATH:/home/user" reichen???

Und was Du mit dem nächsten Beispiel (a=hallo...) meinst, kapier ich gar nicht. Ich muss allerdings dazu sagen, dass ich gerade nicht zu Hause sondern auf der Arbeit (an einem Win-Recher;) ) bin...

Susu:confused:

melody lee
06.12.02, 19:04
Ehrlich gesagt versteh ich das nicht so ganz. Würde nicht ein "export PATH=$PATH:/home/user" reichen???
Ja, würde reichen, meine Version ist in diesem Fall zweifellos mit der Kirche ums Dorf.
Aber wenn Du Variablen mit Hilfe von Befehlen einen Wert zuweisen willst, kommst Du um um dieses $(befehl)-Konstrukt nicht herum (oder auch mit rückwärtigen Hochkommata: `befehl` )
Wenn Du z.B wissen willst, was für ein Dateityp der Befehl "pon" ist: "file $(which pon)" führt den Befehl "file" aus, wobei $(which pon) durch das Ergebnis des Befehls "which pon", also " /usr/bin/pon" ersetzt wird.