Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
tuxfreund
- Beiträge: 58
- Registriert: 01.12.2009 19:19:46
Beitrag
von tuxfreund » 24.09.2010 15:07:59
Hallo,
ich möchte die modulo Rechenoperation (%37) auf Zufallszahlen anwenden, komme aber an der letzten Pipe nicht weiter.
Code: Alles auswählen
dd if=/dev/urandom bs=512 count=1 | od -An -d | expr % 37
bzw
Code: Alles auswählen
dd if=/dev/urandom bs=512 count=1 | od -An -d | echo $((%37))
Wie übergebe ich richtig?
Gruss
-
cosmac
- Beiträge: 4576
- Registriert: 28.03.2005 22:24:30
Beitrag
von cosmac » 24.09.2010 17:58:15
hi,
ich fürchte, ohne Schleife wird das nichts. Zum Ausgleich kannst du aber "dd" sparen, "od" kann auch eine bestimmte Anzahl von Bytes lesen. Das könnte dann so aussehen:
Code: Alles auswählen
for rnd in $(od /dev/urandom -N 512 -An -d) ; do echo $(($rnd%37)) ; done
Viel Glück! Aber vergiss nicht: die Bank gewinnt immer
Beware of programmers who carry screwdrivers.
-
tuxfreund
- Beiträge: 58
- Registriert: 01.12.2009 19:19:46
Beitrag
von tuxfreund » 25.09.2010 11:40:34
Danke. So gehts auch. Allerdings habe ich backgequotet. Hoffe es macht keinen Unterschied.
Code: Alles auswählen
!#/bin/sh
for zahl in `od /dev/urandom -N 512 -An -d`
do
echo $(($zahl%37))
done
-
cosmac
- Beiträge: 4576
- Registriert: 28.03.2005 22:24:30
Beitrag
von cosmac » 25.09.2010 12:25:33
tuxfreund hat geschrieben:Allerdings habe ich backgequotet. Hoffe es macht keinen Unterschied.
der Unterschied ist minimal, mit Klammern statt Backquotes kann man solche Ausdrücke auch verschachteln, aber ob das die Übersichtlichkeit fördert...
Beware of programmers who carry screwdrivers.
-
Liffi
- Beiträge: 2345
- Registriert: 02.10.2004 01:33:05
Beitrag
von Liffi » 25.09.2010 14:07:21
tuxfreund hat geschrieben:Danke. So gehts auch. Allerdings habe ich backgequotet. Hoffe es macht keinen Unterschied.
Imho erhoehen Klammern die Uebersichtlichkeit.
Backticks kann man schon mal mit dem Apostroph verwechseln.