Am 2005-05-13 03:29:15, schrieb David Haller: > Hallo, > > Am Fri, 13 May 2005, Michelle Konzack schrieb: > >Also hier wird nichts auch die Platte gekippt: > >----8<-------------------------------------------- > >#!/bin/bash > > > >let SIZE=`cat $1 |wc -c` Das macht einen arithmetischen Wert daraus > useless use of let, useless use of cat > > SIZE=`wc -c < "$1"` Das macht aber ne Zeichenkette man bash Wenn Du Zeit hat den Schmöker mal durchzugehen. Ich habe unzählige scripts in denen es zu unerwarteten fehlern bei Deiner Version kommt. Bei Deiner version kommt dann sowas wie " 1234" also eine Zeichen- ketteraus, während bei mir "1234" einer ein zahlenwert rauskommt. > >for SEEK in `seq 0 $SIZE` ; do > > dd if=$1 of=- bs=584 seek=$SEEK count=1 |\ > > Da fehlt die Umrechung in die Bloecke (s.u.)... Du rufst so dd fuer > jedes byte auf... Ups, sollte for SEEK in `seq 0 584 $SIZE` ; do sein. > > netcat -u -q 0 127.0.0.1 2006 > > if [ $? == "1" ] ; then break ; fi > > Useless use of test (s.u.). Ausserdem sollte das, wenn schon, dann Nein, denn die Schleife rennt weiter wenn 'netcat' einen Fehler hat. 'break' beendet die Schleife. > if test $? -ne 0; then break; fi > > oder meinetwegen auch per Stringvergleich > > if test "x$?" != "x0"; then break; fi > > sein. 'help test' hilft. Ausserdem sollte man beachten, ob man einen > String oder eine Zahl vergleicht. Und das dann auch passend umsetzen. Das macht nichts in diesem Fall (Exit Status), kann entweder if [ $? == "1" ] ; then break ; fi oder if [ $? -eq 9 ] ; then break ; fi verwenden > Ja, bei sowas bin ich ein Pedant ;) Abgesehen vom 'seq' funktioniert mein Script > -dnh Greetings Michelle -- Linux-User #280138 with the Linux Counter, http://counter.li.org/ Michelle Konzack Apt. 917 ICQ #328449886 50, rue de Soultz MSM LinuxMichi 0033/3/88452356 67100 Strasbourg/France IRC #Debian (irc.icq.com)
Attachment:
signature.pgp
Description: Digital signature