Standartausgaben in Variabeln speichern - bash
Ich beschäftige mich seit kurzen mit der Shell Programmierung und komme nicht mehr weiter.
Ziel des Programms ist es, Login und Username einer Sitzung (x2go) zu ermitteln und bei längerer Inaktivität zu löschen. Folgendes funktioniert bereits:
Als "echo" Ausgabe erhalte ich dann folgende Werte:
SESSIONDATE1=15
SESSIONDATE2=06
SESSIONDATE3=08
SESSIONDATE4=16
SESSIONDATE5=17
Dies sind dann die Variabeln, die ich für die weitere Programmierung benötige. Diese Variabel kann sich bis +19 auffüllen. Ich kriege es hin, dass mir die Variabel ausgegeben wird, aber ich kann sie nicht weiter verwenden, sie werden ja nicht definiert. Ich brauche nun eure Hilfe, um die "generierten" Variabeln abspeichern zu können. Wie löst man so etwas?
Ziel des Programms ist es, Login und Username einer Sitzung (x2go) zu ermitteln und bei längerer Inaktivität zu löschen. Folgendes funktioniert bereits:
#!/bin/bashDATE=$(date +"%d")COUNTER_S=1STOP_COUNTER_S=20#Gibt das Session-Datum des letzten Logins auswhile [ $COUNTER_S -lt $STOP_COUNTER_S ]; do echo SESSIONDATE$COUNTER_S=$(x2golistsessions_root | awk {'print $2'} | sed -n $COUNTER_S'p' | sed -e 's/.*|//'| cut -c 1-2)"; COUNTER_S=$(( $COUNTER_S + 1)) done
Als "echo" Ausgabe erhalte ich dann folgende Werte:
SESSIONDATE1=15
SESSIONDATE2=06
SESSIONDATE3=08
SESSIONDATE4=16
SESSIONDATE5=17
Dies sind dann die Variabeln, die ich für die weitere Programmierung benötige. Diese Variabel kann sich bis +19 auffüllen. Ich kriege es hin, dass mir die Variabel ausgegeben wird, aber ich kann sie nicht weiter verwenden, sie werden ja nicht definiert. Ich brauche nun eure Hilfe, um die "generierten" Variabeln abspeichern zu können. Wie löst man so etwas?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 157185
Url: https://administrator.de/contentid/157185
Ausgedruckt am: 05.11.2024 um 16:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo thedani!
Ich kenn mich zwar mit Shell nicht so aus, aber wahrscheinlich geht es so:
...Wenn es nicht geht, sagt mir bitte auch wieso(will ja auch mal was lernen)
Mathe172
P.S.:Bitte Codeformatierungen benutzen...
Ich kenn mich zwar mit Shell nicht so aus, aber wahrscheinlich geht es so:
while [ $COUNTER_S -lt $STOP_COUNTER_S ];
do
SESSIONDATE$COUNTER_S=$(x2golistsessions_root | awk {'print $2'} | sed -n $COUNTER_S'p' | sed -e 's/.*|//'| cut -c 1-2)";
...
Mathe172
P.S.:Bitte Codeformatierungen benutzen...