Sebastian Oeste oeste.sebastian@googlemail.com (Fr 15 Jun 2012 20:28:30 CEST):
Hi,
Ich muss unter gewissen Umständen bestimmte Variablen setzten, leider sind die Umstände so bestimmt das ich diese Variablen nicht in der .bashrc setzten kann.
Dort gehörte sie auch nicht rein, sondern in .bash_profile oder ihre direkten Verwandten.
Also dachte ich mir, kein Problem dafür gibt es Skripte. Nun glaube ich das was ich vorhabe geht generell garnicht. Folgendes Skript:
WRAPLIB=$HOME/SHMEM/lib/libshmemWrap.so
if [ -e $WRAPLIB ] then export LD_PRELOAD=${LD_PRELOAD:-$WRAPLIB} echo $LD_PRELOAD else echo "$WRAPLIB does not exists!" fi
Soweit sogut, nur nach Ausführung des Skriptes ist die Variable $LD_PRELOAD nicht gesetzt.
Genau. So wie Du auch rausgefunden hast, wird das nicht gehen. Der andere schon genannte Vorschlag sollte gehen, den Script nicht als Script aufzurufen, sondern zu „sourcen“.
Oder alles in eine Shell-Funktion zu stecken, Du Du in der .bash_profile definierst und bei Bedarf aufrufst. Geht natürlich nur, solange Du das aus der Shell heraus machst.
Oder eine Kombination aus beidem: Source-File in Verbindung mit einer Shell-Funktion, die nur „source $HOME/shmmemwrap.sh“ aufruft.