Environment variablen per script verändern

K

knumskull

Foren As
moin,

da ich es immer leid bin, um X zu exportieren meine IP etc .. an DISPLAY zu übergeben, wollt ich das in nem script machen. Funktioniert soweit auch schon, nur leider öffnet sich ja durch das script ne eigene Shell und das verändern der Variablen bringt mir nix. Wie kann ich das abändern


unten angehängt mein Code. Stimmt nicht mehr ganz, da ich einige Sachen probiert habe. Aber der Grundgedanke ist sichtbar. Nur die Ausgabe, bzw das setzen der Variablen wurde verändert. Wäre über jeden Tipp dankbar.

Gruß Steffen

Code:
if test -n "$1" ; then

  echo $SSH_CLIENT > /tmp/knums.txt
  sshIP=$(sed -n 's/.*\(129.247.[0-9]\{2,3\}.[0-9]\{2,3\}\).*/\1/ p' /tmp/knums.txt)

  if test -n "$sshIP" ; then

        echo "export DISPLAY=$sshIP:$1"
        #DISPLAY="$sshIP:$1"
        #export DISPLAY=$DISPLAY
  fi
else
  echo "usage: $0 Display(Bsp.: $0 0.0)"
fi

exit 0
 
Erreichst Du das gleiche nicht, indem Du Dich mit 'ssh -X' oder 'ssh -Y' auf dem Server einloggst?
 
ich logge mich auf dem Rechner über ssh von nem Windows-Client aus, ein. Also putty.
 
Und der Windows-Client unterstuetzt das X11-Protokoll? Gibt es fuer Cygwin nicht ssh-Klienten, die X-forwarding unterstuetzen?

Kannst Du den Code nicht in die ~/.bashrc oder ~/.bash_profile schreiben?
Oder Du benutzt 'set'. Zumindest wurde heute oder gestern hier im Board erwaehnt, dass man damit Variablen ueber die Shell hinaus setzen kann.
 
Und der Windows-Client unterstuetzt das X11-Protokoll? Gibt es fuer Cygwin nicht ssh-Klienten, die X-forwarding unterstuetzen?
Ich habe ein extra Prog, womit ich X realisiere. Also nen extra X-Server. Ich benutze kein cygwin.

Kannst Du den Code nicht in die ~/.bashrc oder ~/.bash_profile schreiben?
warum sollte ich.


Oder Du benutzt 'set'. Zumindest wurde heute oder gestern hier im Board erwaehnt, dass man damit Variablen ueber die Shell hinaus setzen kann.
habe ich auch gerade gelesen. nur ist mir nicht ganz bewusst wie das geht. Die manpage hilft mir grad auch nicht sehr viel weiter.

also ich habe jetzt folgende Zeile für die ausgabe

Code:
set DISPLAY=$sshIP:$1
 
I


warum sollte ich.
Warum solltest du nicht?
Du kannst globale Variablen setzen, allerdings nicht für den Parentprozess.
Wenn du also eine ENVIROMENT-Variable setzt, wird diese nur für diese Shell und alle Subshell sichtbar sein.

Unter der Bash gibt es noch env
Unter einigen anderen gibt es noch setenv.

Üblicherweise werden also Enviroments für alle Prozesse in der .bashrc oder gar /etc/profile gesetzt.

Gruß Wolfgang
 
aber wie kann ich dann das exportieren auf mehrere Displays organisieren?

also 0.0, 1.0, etc.
 

Ähnliche Themen

Switche abfragen über Script

script sshpass

Verschlüsseltes Backup-Script mit rsync

Crontab und Scripts - Problem

[Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

Zurück
Oben