Forum: Mikrocontroller und Digitale Elektronik Linux Shell Variablen übergeben?


von Sven (Gast)


Lesenswert?

Hey

Ist es möglich eine Variable von einer Shell zur anderen zu übergeben?
Ich habe einerseits Telnet zugriff und andererseits Rs232 soweit laufen 
ja beide getrennt voneinander.

Wenn ich jetzt versuche eine Variable normal zu verwenden bleibt diese 
auf der anderen Shell lehr.

a=test
echo $a

jemand eine idee?

von Stefan E. (sternst)


Lesenswert?

1
export a

von Linuxer (Gast)


Lesenswert?

Schau Dir mal FIFOS an (Befehl: mkfifo)

Oder Du versucht es mit export.

von Sven (Gast)


Lesenswert?

Das hab ich gerade versucht leider bleibt die variable in ihrer 
umgebung.

Es ist sogar möglich gleichnamige variablen mit unterschiedlichen werten 
zu füllen ohne das sie sich überschreiben...

von Stefan E. (sternst)


Lesenswert?

Nachtrag:
Vielleicht habe ich deine Frage auch missverstanden. Du bekommst mit 
"export" natürlich keine Variable in eine bereits parallel laufende 
Shell, sondern nur in neue Sub-Shells.

von Sven (Gast)


Lesenswert?

hmm aber was is eher da die Telnet oder die Rs232 sell?

Mein plan ist es ja gezielt daten via Rs232 in eine andere shell zu 
senden

von Stefan E. (sternst)


Lesenswert?

Sven schrieb:
> hmm aber was is eher da die Telnet oder die Rs232 sell?
>
> Mein plan ist es ja gezielt daten via Rs232 in eine andere shell zu
> senden

Sorry, aber jetzt weiß ich gar nicht mehr, was du genau meinst. Hast du 
jetzt auf jeder Seite der seriellen Verbindung eine Shell, oder bist du 
über eine serielle Verbindung per Telnet auf einem Rechner, und willst 
dann dort lokal Daten in eine andere Shell bekommen?

von Duda (Gast)


Lesenswert?

Dann sende doch "export daten=33<ENTER>" danach liegt die 33 in der 
Umgebungsvariable "daten".

von Sven (Gast)


Lesenswert?

Ok ich hab das wohl nicht gut beschrieben.

Ich habe ein Linux board (Es war einmal ein Router...) Nun erreiche ich 
die Shell 1 Über Telnet die Shell 2 über Rs232 und vermutlich auf einer 
Dritten läuft der Webserver.
Nun würde ich gerne über Telnet und Rs232 daten in Variablen schreiben 
und an der jweils anderen Schnittstelle wieder auslesen können.

Ziel ist es Daten via Rs232 und Telnet an die Weboberfläche und zurück 
zu verteilen

von Stefan (Gast)


Lesenswert?

Du kannst mit mkfifo eine Pipe (virtuelle Datei) anlegen. In der einen 
Shell schreibst Du in die Datei, in der anderen liest Du die Datei aus.

Das geht natürlich auch mit richtigen Dateien.

von Stefan E. (sternst)


Lesenswert?

Sven schrieb:
> Ich habe ein Linux board (Es war einmal ein Router...) Nun erreiche ich
> die Shell 1 Über Telnet die Shell 2 über Rs232 und vermutlich auf einer
> Dritten läuft der Webserver.

Die genaue Konstellation leuchtet mir zwar immer noch nicht ein (was 
meinst du z.B. mit "Shell über Telnet erreichen"? der Login per Telnet 
erzeugt normalerweise eine neue Shell), aber es läuft wohl auf den 
Datenaustausch zwischen parallelen Shells auf dem selben Rechner hinaus. 
Dann lege im Filesystem eine Named-Pipe an (mkfifo), dann kannst du in 
einer Shell dort hineinschreiben (z.B. per "echo"), und in der anderen 
daraus lesen ("read").

von Sven (Gast)


Lesenswert?

Klaar danke hab mich so auf Variablen fixiert das ich die Datei 
vergessen hab mkfifo oder auch einfach eine datei auf Datenträger klappt 
wunderbar :) dankeschön

von Duda (Gast)


Lesenswert?

Auf einem Linux-System läuft nicht jede Komponete auf einer eigenen 
Shell.
Über RS232 kommst Du direkt an die Konsole. Hier kannst Du alles 
erreichen und auch starten.

Per SSH oder Telnet bekommst Du eine andere Shell (anderer Kontext). 
Jedoch kannst Du auch dort alles erreichen.

Der Webserver läuft im Hintergrund und nicht auf einer eigenen Shell.

Oft wird aber über Telnel oder SSH keine Shell, sondern ein anderes 
Programm gestartet, mit dem man eingeschränkten Zugang zum System hat.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.