• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Frage zue environment variable

Alexander

Aargauer Weinapfel
Registriert
09.09.08
Beiträge
749
Hallo,

ich bin gerade dabei oder viel mehr habe vor das Programm Surface Evolver zu installieren. Die Installationsanweisung (http://www.susqu.edu/brakke/evolver/evolver.html) besagt, dass man eine environment variable erstellen muss und gibt an den Befehl
Code:
[COLOR=#000000][B]setenv EVOLVERPATH "/Users/yourname/Evolver/fe:/Users/yourname/Evolver/doc"[/B][/COLOR]
in die File .tcshrc einzufügen. Leider weiß ich nichts mit der File anzufangen und im Internet bin ich auf ein paar Berichte gestoßen, demzufolge der Befehl setenv im Terminal gar nicht existiert.
Darum wollte ich fragen, ob sich jemand damit genauer auskennt. Ich will nicht umbedingt irgendwas ausprobieren und was verstellen bzw. verlegen.

MfG
 
Vermutlich weil du die bash verwendest und nicht tcsh.

Du solltest mit diesem Befehl eine environment variable setzen können:

Code:
[B]export EVOLVERPATH="/Users/yourname/Evolver/fe:/Users/yourname/Evolver/doc"[/B]

Um nachzuprüfen, ob sie auch erfolgreich gesetzt wurde kannst du das so testen:

Code:
echo $EVOLVERPATH

Das sollte den oben angegebenen String zurückliefern.

Wenn du es dauerhaft machen willst, also für alle Sessions mit deinem Benutzer, kann musst du den o.g. Befehl in die Datei .bash_profile eintragen.
 
Alles klar.
Eine grundsätzliche Frage hätte ich dazu noch. Diesen Pfad brauch ich doch nur, damit das Programm welches ich laut Anleitung ja zB in /bin schiebe, die Dateien dort findet oder? Der Name des Pfades darf dann ja auch nicht willkürlich sein schätz ich mal.

Falls das nur mit der Verschiebung zu tun hat von dem Programm, wäre es dann auch möglich den gesamten Programmordner, also inklusive der ausführbaren Datei und der Ordner doc und fe in Programme zu schieben und dann nur einen symbolischen Link ln -s in das /bin Verzeichnis zu legen? Sowas musste ich mal bei Gnuplot machen, damit ich Gnuplot überall starten konnte. Falls das geht, könnte man dann die Environment Variable weglassen oder braucht es die trotzdem?
 
Wenn das Programm nach der Umgebungsvariablen sucht, muss es dort drin stehen---aber kann durchaus sein, dass es anders implementiert wurde.
 
Okay, ich habe es mal ausprobiert und ohne die Variable geht es nicht.
Ich habe diese jetzt erst mal nur so im Terminal erstellt, da sie jetzt nicht in dieser Profile Datei steht wäre sie beim nächsten Start wieder weg?
Wo finde ich dann diese bash_profile Datei. In meinem Homeverzeichnis ist nur eine bash_history Datei.

Und vielleicht noch eine kleine Zwischenfrage zu den Pfaden da ich mir da immer nicht sicher bin. Der Ordner in dem die ausführbare Datei liegt besteht aus den zwei Worten "Surface Evolver", also mit Leerzeichen. Als ich eben den symbolischen Link angelegt hat mit Hilfe der Tabtaste, wurde mir im Pfad Surface\ Evolver ausgegeben. Muss ich bei der Pfadvariable das auch mit dem Backslash angeben oder versteht das Terminal auch ein einfaches Leerzeichen? Weil beim Pfad hab ich eben kein Backslash verwendet.
 
  1. Wenn du es "flach" ins Terminal tippst, es die Variable nur für diese eine Terminal-Sitzung gültig.
  2. Wenn es noch keine .bash_profile gibt, musst du es manuell anlegen. Beispielsweise mit touch .bash_profile.
  3. Wenn Leerzeichen in einem Pfad vorkommen, müssen diese maskiert werden, damit diese auch als Leerzeichen interpretiert werden; weil sonst wird das Leerzeichen ja als Trennung für das nächste Programm-Argument verwendet. Maskiert wird mit \_ wobei _ dem Leerzeichen entspricht.
    • Du kannst z.B. mit cd /pfad/pfad\ mit\ leerzeichen/ maskieren.
    • Du kannst aber auch schreiben cd "/pfad/pfad mit leerzeichen/", die Anführungszeichen ermöglichen es dir also ohne Maskierung auszukommen.