h1

Zufallszahlen mit der Shell (Bash)

Februar 1, 2009

Mahlzeit,
nach meiner langen Zuneigung zu den Comic Häschen von Anskunen24 habe ich mich entschlossen in die SiteBar meines Blogs eine Kategorie “feeling right now” einzurichten. Auf der Suche nach einer Lösung für die dynamik der neuen Blog-Abteilung durchforstete ich schliesslich das Internet nach Zufallszahlen in Shellskripten. Ein recht mageres Ergebnis ist sozusagen der Grund für diesen Blog-Beitrag.

Zuerst mal gibt es eine Variable $RANDOM die eine zufällige Zahl zwischen 0 und 30.000 und ein paar zerquetschten ausspuckt. man Pages dazu sucht man auch vergeblich… aber mit dem kleinen Operator “%” Modulo lässt sich dann doch relativ einfach eine Lösung für die Bereichsangabe finden.

echo $((RANDOM % 50)) wirft uns eine zufällige Zahl zwischen 0 und 50 aus. Und wenn ich keine 0(null) Dabei haben möchte? Auf der Suche nach ein paar weiteren Operatoren fiel mir dann ein wie blauäugig ich doch bin :)

echo $((RANDOM % 49 +1))  :) Diese  Lösung beinhaltet meine 50 Zahlen und durch +1 erhalte ich bei der 0 trotzdem die 1 :)

Nun aber zurück zum eigentlichen Skript :)

#!/bin/bash
rnd=$((RANDOM % 22))
cp /var/www/emotes/emote$rnd.gif /var/www/emotes/mainemote/emote.gif
echo “`date +%d-%m-%Y-%H:%M:%S` cp /var/www/emotes/emote$rnd.gif /var/www/emotes/mainemote/emote.gif” >> /var/log/emote.log

#/bin/bash  ist sehr wichtig! /bin/sh wirft immer nur null aus… warum auch immer. Ihr lacht.. aber da komm erstmal drauf :) 30 Minuten später hatt ichs dann auch :D
# 22 ist die Anzahl der verschiedenen Emotes
# Kopiere zufälliges Emote nach mainemote(Abrufstelle für die GIF-URL im Blog)
# Und hier muss ich mich jetzt als totaler Log-Fanatiker outen. Ohne gehts nicht :)

Soweit das Wort zum Sonntag.
Sie laßen .. einen Gastbeitrag von noqqe :)

About these ads

5 Kommentare

  1. [...] “feeling right now” mit Bash ZufallssZahlen auf Codecocktail gepostet. Er ist hier: http://codecocktail.wordpress.com/2009/02/01/zufallszahlen-mit-der-shell-bash/ [...]


  2. [...] Widget das alle 5 min ein zufälliges Bild aus einem Pool auswählt und einsetzt. Das dazugehörige Skript habe ich ja auf CodeCocktail gepostet Wie man dem ganze leicht entnehmen kann lasse ich das Skript [...]


  3. [...] Statistik für die zufällig ausgewählten Bilder per Mail zuschicken. Das Skript dazu hab ich bei CodeCocktail gepostet Der Zufall ist dabei sehr … parteiisch find ich: Daily Emote Score for [...]


  4. Die Variable $RANDOM gibt es nur in der bash-Shell. sh-Shell gibt “” (leer) zurück.

    Wie auch immer. ;-)

    Gruß Michael


  5. RANDOM % 50 gibt Zahlen von 0 bis 49 aus. Wenn Du Zahlen von 1 bis 50 haben willst, muss es RANDOM % 50 + 1 heißen.



Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ photo

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.

%d Bloggern gefällt das: