2014-12-27
Das folgende Bash-Skript antwortet auf einen HTTP-Request mit der aktuellen Uhrzeit.
Beim Start des Skripts werden 2 Prozesse gestartet:
nc
horcht auf Port 8080 auf einen HTTP-Request und leitet diesen an die named Pipe weiter.nc
weiter.Die named Pipe in Kombination mit der Subshell des 2. Prozesses ist der Kniff des Skripts damit auch die aktuelle Zeit über nc
als HTTP-Response zurück geliefert wird.
#!/bin/bash
if [ ! -p pipe ]; then
mkfifo pipe
fi
while true; do
{
read line < pipe
echo -e "HTTP/1.1 200 OK\r\n"
echo $(date)
} | nc -l 8080 > pipe
done
Eine brauchbare Erklärung zur Subshell ist auf Stackexchange zu finden.