Bash Shell Scripting ($PATH editieren?)



  • Hallo Forum,

    ich möchte eine OpenSource DLL kompilieren. Dafür muß ich eine Bash und ein Make installieren, dafür muß ich Perl hinzufügen, dafür muß ich den Pfad in der Bash hinzufügen... eines der Tage wo man davon träumt das Bill Gates eine Atommacht wäre 😃

    Wie sieht ein Script aus mit dem ich den Pfad in einer Shell beeinflussen könnte? So etwa?

    #!/bin/sh                                                                    
    PATH=/d/Programme/SiePerl/perl/5.8.0/bin:/d/Programme/SiePerl/perl/5.8.0/bin/MSWin32-x86-perlio:$PATH
    export PATH
    

    Stammte aus dieser Quelle:http://www.troubleshooters.com/linux/prepostpath.htm

    Bitte nicht vom komischen Pfad beeinflussen lassen. Mein Problem ist nun das wenn ich im Shellscript echo $PATH schreibe ist der Pfad hinzugefügt, wenn ich auf der Konsole von wo ich das Script gestartet habe den echo Befehl eingebe der Pfad wieder weg ist. Irgendwo habe ich gelesen das bei jedem neuen Script eine neue Bash gemacht wird. Mit Export soll angeblich die PATH Variable exportiert werden. Funktioniert hier aber nicht. Sollte das funktionieren oder wurde das bei dieser Bashportierung auf Windows einfach vergessen? Die .bashrc wird scheinbar überlesen, hab ich auch schon probiert...



  • das export gilt dann nur für programme die du aus dem selben prozess (also dem script) ausführst.
    Ums in der aktuellen shellsitzung gültig zu machen musst du's sourcen

    . ./script.sh

    oder

    source ./script.sh



  • Bundeszentrale schrieb:

    Irgendwo habe ich gelesen das bei jedem neuen Script eine neue Bash gemacht wird. Mit Export soll angeblich die PATH Variable exportiert werden. Funktioniert hier aber nicht. Sollte das funktionieren oder wurde das bei dieser Bashportierung auf Windows einfach vergessen? Die .bashrc wird scheinbar überlesen, hab ich auch schon probiert...

    So ist es, ein Shellskript läuft in einer eigenen Subshell und beeinflusst die drüberliegenden Shells (also die aufrufende) nicht. Da hilft auch export nichts, das gilt nämlich nur für die weiter erzeugten shells des skriptes. Du könntest nun
    - in deinem Skript eine bash aufmachen, die dann mit dem veränderten Path arbeitet
    - in den Windows-Einstellungen den Path ändern
    - die .bashrc benutzen

    Die bashrc funktioniert auf jeden Fall und ist hier die sauberste Lösung, hast du die .bashrc auch garantiert im richtigen Verzeichnis angelegt?

    Edit: verdamt der greenthumb hat recht, die variante ist mri total entfallen 👍



  • Bundeszentrale schrieb:

    eines der Tage wo man davon träumt das Bill Gates eine Atommacht wäre 😃

    Ja dann bräuchstest du auch kein Open-Source zu machen, weils dass nicht gäb :p

    Spar die doch eine Zeile

    export PATH=/blah/blub:$PATH
    


  • Hallo DrGreenthumb und TriPhoenix,

    Um ein Skript auszuführen, kann dieses entweder direkt mit der Shell geladen werden ("bash script") oder in einer laufenden Shell mit dem source-Befehl eingelesen und dann ausgeführt werden

    http://www.linux-user.de/ausgabe/2001/01/088-bash/bash-builtins.html

    Aha so läuft das. Vielen Dank Euch beiden 🙂



  • imhotep schrieb:

    Bundeszentrale schrieb:

    eines der Tage wo man davon träumt das Bill Gates eine Atommacht wäre 😃

    Ja dann bräuchstest du auch kein Open-Source zu machen, weils dass nicht gäb :p

    Ich schätze jeder von uns kennt diese super dokumentierten Open Source Projekte wo man selbst mit Änderungen in den Source gehen muß damit es überhaupt kompiliert. Ich würde sagen 10 Jahre Höllenfeuer haben sie sich alle verdient 😃



  • Bundeszentrale schrieb:

    Ich schätze jeder von uns kennt diese super dokumentierten Open Source Projekte wo man selbst mit Änderungen in den Source gehen muß damit es überhaupt kompiliert. Ich würde sagen 10 Jahre Höllenfeuer haben sie sich alle verdient 😃

    da können die eigentlichen programmierer auch nicht viel für. Compiler samt Bibliotheken ändern sich hin und wieder.


Anmelden zum Antworten