[linux-l] Logik von "Syntax-Fehler" in Bash
Michael Gisbers
m.gisbers at linux-schmie.de
Fr Dez 27 13:02:39 CET 2013
On Fri, 27 Dec 2013 12:47:09 +0100
Hasko Bern <pascal.hasko.bernhard at googlemail.com> wrote:
> Hallo an alle,
>
> kann mir jemand mit der folgenden Meldung zu einem Syntax-Fehler aufs
> Fahrrad helfen? Mir erscheint dies einfach völlig unlogisch. Folgende
> Befehle habe ich ausgeführt, um die Lese-Geschwindigkeit meiner
> Laptop-Festplatte zu testen:
>
> $ sudo hdparm -tT /dev/sda
>
> /dev/sda:
> Timing cached reads: 4762 MB in 2.00 seconds = 2381.87 MB/sec
> Timing buffered disk reads: 232 MB in 3.02 seconds = 76.80 MB/sec
>
>
> Wie ich gelesen habe, soll man diesen Test mehrer Male nacheinander
> ausführen, damit der Cache nicht die Ergebnisse verfälscht:
>
> $ sudo for i in 1 2 3 4 5; do hdparm -tT /dev/sda; done
> --bash: Syntaxfehler beim unerwarteten Wort `do'
>
> Nun das Ganze als Root:
>
> # for i in 1 2 3 4 5; do hdparm -tT /dev/sda; done
>
> /dev/sda:
> Timing cached reads: 4480 MB in 2.00 seconds = 2240.09 MB/sec
> Timing buffered disk reads: 174 MB in 3.02 seconds = 57.59 MB/sec
>
> /dev/sda:
> Timing cached reads: 4506 MB in 2.00 seconds = 2254.04 MB/sec
> Timing buffered disk reads: 186 MB in 3.01 seconds = 61.81 MB/sec
>
> /dev/sda:
> Timing cached reads: 4506 MB in 2.00 seconds = 2253.63 MB/sec
> Timing buffered disk reads: 196 MB in 3.02 seconds = 64.86 MB/sec
>
> /dev/sda:
> Timing cached reads: 4478 MB in 2.00 seconds = 2237.56 MB/sec
> Timing buffered disk reads: 156 MB in 3.08 seconds = 50.59 MB/sec
>
> /dev/sda:
> Timing cached reads: 4442 MB in 2.00 seconds = 2221.33 MB/sec
> Timing buffered disk reads: 172 MB in 3.01 seconds = 57.09 MB/sec
>
>
> Ich kapiere es nicht, wieso erhalte ich einen Syntax-Fehler, wenn ich
> das mit sudo mache? Es handelt sich doch offentlich weder um ein
> PATH-Environment Problem, noch "dürfte" dies etwas mit Berechtigungen
> zu tun haben. Muss ich etwas Besonderes beachten, wenn ich die
> Konstruktion "for i in..." zusammen mit sudo verwende?
>
> Normalerweise verwende ich sudo sehr selten, nur wollte ich das auf
> die Schnelle machen, und dies ersparte mir dann eigentliche ein
> kleines Bisschen Tipparbeit.
>
> Vielen Dank für Eure Hilfe,
Hallo Pascal,
das Problem mit der Schleife ist einfach. Nimm bitte alle ';' und mache
daraus einen Zeilenumbruch. Denn das ist die Aufgabe des Zeichens:
sudo for i in 1 2 3 4 5
do hdparm -tT /dev/sda
done
Der sudo - Aufruf ist damit schon nach der '5' beendet und der Rest
wird wieder normal als neue Zeile gehandhabt.
Daher die Fehlermeldung.
--
Mit freundlichem Gruß,
Linux-Schmie.de
Michael Gisbers
Neukölner Str. 94
46147 Oberhausen
Telefon: +49 208 628 950
Telefax: +49 208 628 951
Mobil: +49 173 510 68 22
http://linux-schmie.de
USt-IdNr. DE 189 020 052
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : signature.asc
Dateityp : application/pgp-signature
Dateigröße : 198 bytes
Beschreibung: nicht verfügbar
URL : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20131227/c521033c/attachment.sig>
Mehr Informationen über die Mailingliste linux-l