[Alug] Frage zum Skripten

D. Buchkremer dezibel007 at online.de
Mon Nov 23 19:55:32 CET 2009


Am Montag, 23. November 2009 19:22 schrieb Christian Bricart 
<christian at bricart.de>:
> D. Buchkremer schrieb:
> > Am Montag, 23. November 2009 18:53 schrieb Christian Bricart
> >
> > <christian at bricart.de>:
> >> D. Buchkremer schrieb:

> >>>
> >>> Die beiden Zeilen lauten:
> >>> "    	dd if=$PAR1 of=$file bs=$PAR3 count=1 skip=$a;
> >>>     	sz=$(stat -c %s $file);
> >>> "
> >>> Entdeckt von euch jemand, was da nicht stimmen könnte?
> >>
> >> Was steht zum o.g. Ausführungszeitpunkt and der Stelle in der
> >> Variablen "${file}"..?
> >
> > Der Inhalt eines 512B-Blocks von einer meiner HDDs. ;->
> > Also irgendwas binäres.

Stopp! Nein! Ich meinte, der Binärbrocken soll der Inhalt von file, also 
$file, *werden*! Was da drin ist, wenn das Skript beim Ausführen an der 
dd-Zeile ankommt, ist das, was von der letzten Runde (steht in einer 
Schleife) noch da drin steht. Das soll dann jeweils überschrieben 
werden...

>
> und wie genau soll dann deiner Meinung nach, wenn in $file
> irgendwelcher 512 Byte Binärmüll drinsteht, der Dateiname aussehen,
> in den du damit schreiben willst...?!? (<- "dd ... of=$file .." ) und
> danach die Größe dieses Dateinamens abfragst (<- "stat -c %s $file" )
> ..?!?
> Ich kann's dir sagen: ein Dateiname der Länge 512Byte bestehend aus
> Binärmüll-Zeichen... ;-)

Ähm, ja. :-/ Das seh ich ein.
(Ich hab das - vllt. in allgemein durchaus gerechtfertigtem Vertrauen - 
von jemandem übernommen, der das jetzt hoffentlich auch hier 
mitliest... Ich nenne aber mal keinen Namen... ;-D )
Ich sollte also "of=$file" weglassen, und dafür am Ende "> $file" 
schreiben, meinst du, oder? Oder - wo wir das gerade haben - kann ich 
dd prinzipiell auch mit seiner of-Option sagen, daß er in die mit 
mktemp erstellte Datei $file schreiben soll? Also einfach "dd ... 
of=file ...", und nicht "dd ... of=$file ..."? Klingt aber auch 
komisch... Hmm...

>
> > Willst du das komplette Skript sehen? Aber nicht lachen, bitte. ;-)
>
> ich kann mich jetzt schon kaum halten ;-))) SCNR ;-))

Gut, dann haben wir ja jetzt mal heftig abgelacht - ist gesund - und 
können zur Sache kommen... ;->

>
> >> Grüsse
> >>   Christian
> >>
> >> P.S. Und lass direkt mal so komische Zeichen aus Dateinamen, bevor
> >> dir die irgendwann (so wie wahrscheinlich jetzt z.B.) auf die Füße
> >> fallen...
> >
> > Das war bei diesem Projekt bisher noch nie ein Problem, bzw. ist
> > mir auch nie irgendwie auffällig geworden. Trotzdem danke nochmal
> > für diesen Tip. Ich hatte allerdings eh vor, das Komma
> > wegzuschmeißen, wenn ich "fertig" bin, es also komplett läuft.
> > (Dieser Namensbandwurm ist nur um die Nummer des "Versuchs" zu
> > kennzeichnen, damit ich beim Probieren nicht durcheinander komme
> > und die Ausgaben nachher noch zuordnen kann...). Ich mach das auch
> > ausschließlich an dieser Stelle, im Skript selbt ist alles schön
> > simpel, keine Sonder-/Metazeichnen in irgendwelchen Variablennamen
> > (ok, außer in einer, aber die funktioniert trotzdem, da hakt nix
> > ;-) ).
> > Also mit anderen Worten: ich meine, inzwischen einschätzen zu
> > können, daß das Problem, was ich momentan habe, definitiv nicht
> > daher rührt. (90% des Skripts laufen ja erwartunggemäß, -> sollte
> > nicht am Dateinamen liegen, oder?)
>
> Ich bin nur davon ausgegangen (wie du wahrscheinlich auch ;-) ), 

Ja, jetz hab ich das kapiert... ;-D

> dass 
> in $file schon dem Namen der Variable nach ein Dateiname drinstehen
> sollte... und wenn ich dann sehe, wie du deine Dateien denn so nennst
> und dann im Skript keine Quotierung von solchen Zeichenketten
> verwendest..

Klar, das kann ich verstehen. ;-)

>
> Christian
>

David