(→user:kamikaze: Erklärungen) |
(+kat) |
||
Zeile 55: | Zeile 55: | ||
done | done | ||
</pre> | </pre> | ||
[[Kategorie:GPN8]] |
Aktuelle Version vom 5. Juli 2009, 17:41 Uhr
Code und Basteleien
Auf dieser Seite kann sich jeder verewigen, der auf der GPN etwas programmiert oder gebaut hat.
user:kamikaze
Objektorientierte Shell-Skripte
Ich habe ein kleines Framework für objektorientierte Shell-Skripte geschrieben. Das wird irgendwann in http://bsdadminscripts.sf.net/ genutzt.
Den Code habe ich mal vorläufig auf BSDForen.de veröffentlicht: http://www.bsdforen.de/showthread.php?t=23245
Code-Kommentare
Im Rahmen einer kleinen Unterhaltung über Code-Kommentare, habe ich dieses kleine Skript hier produziert, das ausspuckt wir groß der Kommentaranteil in einem Shell-Skript ist. Das ganze funktioniert unter FreeBSD RELENG_7. Kann sein, das man mit GNU ein paar Parameter anpassen muss.
#!/bin/sh -f apply -3 "sh -c 'echo %1: \$((%2 \* 100000 / %3 / 1000)).\$((%2 \* 100000 / %3 % 1000)) %'" $( ( echo lines words bytes cat "$@" | grep -Exv '#\!.*|[[:space:]]*' | grep -E '^[[:space:]]*#' | wc cat "$@" | grep -Exv '#\!.*|[[:space:]]*' | wc ) | rs -t 3 3)
Update
Inzwischen habe ich erfahren, dass die Befehle apply und rs unter den gängigen GNU/Linux-Systemen nicht verfügbar sind. Also erkläre ich hier mal was sie machen:
- rs -t 3 3
- Betrachtet die eingehenden Daten als 3x3 Matrix und transformiert sie.
- apply -3
- Führt einen Befehl mit jeweils 3 der Parameter die nach dem Befehl kommen aus. Bei 9 Parametern wird der Befehl also 3 mal ausgeführt.
Benutzer:Nomeata
Für L-seed gabs dieses „Alle Twit zu einem Thema suchen und eines nach dem anderen eine Minute lang in eine Datei schreib“-Skript. Braucht libwww-perl, libxml-xpath-perl und lynx.
while sleep 60; do GET "http://search.twitter.com/search.atom?q=%23GPN8&since_id=$(cat msg.id)" > msg.atom if xpath -q -e "//entry" msg.atom |grep -q . then xpath -q -e "//entry[last()]/id/text()" msg.atom |cut -d: -f3 > msg.id echo -n \ $(echo $( xpath -q -e '//entry[last()]/author/name/text()' msg.atom | lynx -dump -stdin|lynx -dump -stdin -nolist | cut -d\( -f1 ))"@twitter:" \ $( xpath -q -e '//entry[last()]/content/text()' msg.atom | lynx -dump -stdin|lynx -dump -stdin -nolist ) \ > msg.txt else echo -n > msg.txt fi done