thedani
Goto Top

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:

#!/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?

Content-ID: 157185

Url: https://administrator.de/forum/standartausgaben-in-variabeln-speichern-bash-157185.html

Ausgedruckt am: 23.12.2024 um 11:12 Uhr

mathe172
mathe172 17.12.2010 um 22:06:31 Uhr
Goto Top
Hallo thedani!

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)";  
...
...Wenn es nicht geht, sagt mir bitte auch wieso(will ja auch mal was lernenface-wink)

Mathe172
P.S.:Bitte Codeformatierungen benutzen...
thedani
thedani 20.12.2010 um 08:40:13 Uhr
Goto Top
Zitat von @mathe172:
Hallo thedani!

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)";  
> ...
> 
...Wenn es nicht geht, sagt mir bitte auch wieso(will ja auch mal was lernenface-wink)

Mathe172
P.S.:Bitte Codeformatierungen benutzen...

So, ich bin nun ein wenig weiter, für solche Dinge wurde eval erfunden:

COUNTER=99
eval SESSIONDATE$COUNTER="'$(date)'"  
echo "$SESSIONDATE99"