PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : BASH: Variablenübergabe in Link



HansMaulwurf
23-06-2003, 09:14
Hi,

ich hab eine html Datei über einen Haufen echos in einem BASH-Skript erstellt :)

jetzt ich hab das Problem das ich eine Variable(OP) in einem HTML-Link übergeben will(wieder an das Aufrufende bash-skript zurück):

<a href="skript.sh?OP=arg>Link</a>

So das $OP nach dem klicken auf den Link nun den wert "arg" besitzt.

In PHP ging das relativ einfach, bei der bash hatte ich jedoch bisher kein Erfolg. Vielleicht kann mir einer auf die Sprünge helfen. :D

pitu
23-06-2003, 16:19
OP=$1

sollte genuegen, denke ich, habs aber bisher natuerlich nie gemacht.

gruss,
pitu

HansMaulwurf
23-06-2003, 18:17
Ja, $1 ist stdin und wird mit dem formular übergeben. IMHO kann die bash nur einen String von stdin lesen. Diesen hab ich dann nochmal mit awk zerlegt:


echo "<form action="firewall.sh" method="post">"
echo "<input type="hidden" name="arg1" value="start" align="top"><br>"
echo "<input type="hidden" name="arg2" value="stop" align="top"><br>"
echo "<input type="submit" value="abdafuer"></form>"

#Standardeingabe in Variable schreiben
stdin=`cat -`
#Schreibe alles von stdin das Links vom & steht in stdin1
stdin1=`echo $stdin | awk -F\& '{print $1}'`
echo "stdin1: $stdin1<br>"
#Teilte stdin1 wieder in 2 Teile, schreibe alles was links von = steht
echo "arg1:"
echo "`echo $stdin1 | awk -F\= '{print $1}'`<br>"
#schreibe alles was rechts vom = steht
echo "value1 zu arg1:"
echo "`echo $stdin1 | awk -F\= '{print $2}'`<br>"

stdin2=`echo $stdin | awk -F\& '{print $2}'`
echo "stdin2: $stdin2<br>"
#Teilte stdin2 wieder in 2 Teile, schreibe alles was links von = steht
echo "arg2:"
echo "`echo $stdin2 | awk -F\= '{print $1}'`<br>"
#schreibe alles was rechts vom = steht
echo "value1 zu arg2:"
echo "`echo $stdin2 | awk -F\= '{print $2}'`<br>"

Die Ausgabe sieht dann so aus:
stdin1: arg1=start
arg1: name
value1 zu arg1: start
stdin2: arg2=stop
value1 zu arg2: stop

mit den einzelenen Variablen kann man dann weiter arbeiten..

have phun