• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[SOLVED]Script mit anderer Shebang und ENV Variablen ausfuhr

byron1778

Hacker
Hallo Forum!

Ich habe folgendes Problem.
Ich moechte ein Script mit einer /bin/sh Shebang, in welchem Environment Variablen gesetzt werden, in einer .cshrc ausfuehren.
Die Environemntvariablen, die dabei gesetzt werden, sollen dann natuerlich in der C - shell, welche standardmaessig beim Einloggen verwendet, aufscheinen.

Kann mir jemand vll. erklaren, wie ich soetwas vollbringen kann?

Danke Euch vielmals fuer jede Hilfe!
 
A

Anonymous

Gast
So richtig werde ich nicht schlau was du genau machen willst. Aber ich denke folgendes

Code:
# Setzen von Variablen in separater Datei
VARI1="hallo"
VARI2="echo"
export VARI3="hier exportiertes HALLO"
Das in eine Datei namens "include_rc", die Datei braucht nur Leserechte.

einbinden in einem anderem Script mit "PUNKT LEERZEICHEN /DATEIPATH/DATEINAME"
Code:
#Shellscript oder auch irgend ein  anders  .config_rc

. include_rc

echo "$VARI1"
echo "$VARI2"
echo "$VARI3"

robi
 
OP
B

byron1778

Hacker
Mein Prioblem sieht so aus.

Standardmaessig ist die C Shell eingestellt.
Jetzt gibt es ein Script, welches unter der sh laeuft.
Dises Script setzt Environmentvariablen, welche ich aber in der C Shell benoetigen wuerde.
Jetzt kann ich aber natuerlich nicht auf diese gesetzten Variablen zugreifen, wenn dieses Script gestartet wird.

Folgendes habe ich in der .cshrc schon versucht
Code:
. script2
source script2

aber leider ohne Erfolg, da dieses Script ja vermutlich in einer Sub-Shell laeuft und dessen gesetzte Variablen dann nicht sichtbar sind fuer die Parent - Shell!

Wie gesagt, ich braeuchte die gesetzten Variablen der sh in der c shell aber!
Und alle Environment Variablen selber zu setzen waere eine elendslange Aufgabe!

Ich hoffe, ich konnte mein Problem besser erlaeutern!
 
A

Anonymous

Gast
mit der csh kenne ich mich nicht so aus, aber laut der Definition in der Manpage die ich hier habe, sollte die ~/.cshrc nur durchlaufen werden wenn es keine ~/.tcshrc gibt.
Eventuell ist das dein Problem?

Soweit ich mich erinnere wird, doch in der csh "setenv VARIABE inhalt" verwendet und in der sh "VARIABLE=inhalt" oder bin ich da auf dem Holzweg :eek:ps: , in diesem Fall währe das was du machen willst doch gar nicht so richtig kompatibel. :???: :???: Wie gesagt ich arbeite nicht mit der csh.

robi
 
OP
B

byron1778

Hacker
Da hast du recht, dass unterschiedliche Befehle verwendet werden, um Environment Variablen zu setzen!
Das ist auch eines meiner Probleme.
Wir sind vom Kunden aus standardmaessig dazu gezwungen eine C Shell zu verwenden, aber die Scripte liegen in sh vor.
Und diese sh Scripte setzen wiederum Environment Variablen, die wir aber benoetigen wuerden in der C Shell.
Wir koennten natuerlich alles per Hand setzen, nur sind das mehr als 2 Variablen :)
Aber wenn es nicht anders geht, werden wir es vermutlich per Hand setzen, oder wir leesn die gesetzten Variablen aus, schreiben sie in eine Datei und holen sie uns von dort aus wieder zurueck fuer unsere C Shell!
 
A

Anonymous

Gast
byron1778 schrieb:
Aber wenn es nicht anders geht, werden wir es vermutlich per Hand setzen, oder wir leesn die gesetzten Variablen aus, schreiben sie in eine Datei und holen sie uns von dort aus wieder zurueck fuer unsere C Shell!
oder ihr sucht mal bei Google nach dem Begriff sh2csh

http://svn.cri.ensmp.fr/svn/pips/branches/teraops_20090319/src/Scripts/env/sh2csh.pl

robi
 
OP
B

byron1778

Hacker
Danke Dir vielmals!
Das Script funktioniert perfekt.
Beim Suchen mit Google hab ich leider nichts gefunden, "falsches" Suchen angewendet!

Danke Dir vielmals!
 
Oben