[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