Pipe

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
tuxfreund
Beiträge: 58
Registriert: 01.12.2009 19:19:46

Pipe

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

Re: Pipe

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

Re: Pipe

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

Re: Pipe

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

Re: Pipe

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.

Antworten