#!/usr/bin/haserl
Content-type: text/html
<% echo "Hallo Welt!" %>
Wie hier zu sehen ist, kann man Skript einfach zwischen "<%" und "%>" schreiben und html außenrum.
Da der Text zwischen den oben genannten Tags durch BASH interpretiert wird, gelten dort die bekannten Regeln, wie z.B. Kommentare usw.
==== For Schleife ====
#!/usr/bin/haserl
Content-type: text/html
<%
for color in Red Green Blue Yellow Cyan; do
echo -n "$color "
done
%>
Das sieht dann im Browser folgendermaßen aus:
{{ :it:linux:for.png }}
==== Externe Programme aufrufen und deren Ausgaben darstellen ====
#!/usr/bin/haserl
Content-type: text/html
<%
uname -a
%>
Das sieht dann z.B. so aus:
{{ :it:linux:external.png?650 |}}
==== Download ====
#!/usr/bin/haserl
Content-type: application/octet-stream
Content-Disposition: attachment; filename=random.dat
<%
echo ""
dd if=/dev/urandom bs=1024 count=1024
%>
Dieses Script besorgt sich 1MB Zufallsdaten von /dev/uramdom und bietet sie dem Client zum Download an.\\
Wie hier zu sehen ist, kann man ganz einfach gestreamte Daten (ohne Zwischenspeichern) zum Download anbieten und den Namen der heruntergeladenen Datei vorbelegen.
\\
Dies funktioniert natürlich auch mit tar für Backups.
==== Upload ====
#!/usr/bin/haserl --upload-limit=4096 --upload_dir=/tmp/
Content-type: text/html
An Anfang sieht das so im Browser aus:
{{ :it:linux:upload1.png |}}
Hat man eine Datei hochgeladen, so sieht die Seite dann so aus:
{{ :it:linux:upload2.png |}}
==== GET Variable ====
#!/usr/bin/haserl
Content-type: text/html
<% echo $FORM_testvariable %>
Wenn dieses Script so
get.sh?testvariable=hallo_welt
aufgerufen wird, so wird im Browser "hallo_welt" ausgegeben.
\\
Wie Haserl genau mit GET, POST und COOKIE Methoden umgeht, kann man am besten in der Manpage unter "Client side input" nachlesen.
===== Links =====
* [[http://haserl.sourceforge.net/ | Haserl]]
* {{:it:linux:haserl_examples.tar.gz| Haserl Beispiele}}