[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Verzeichnis mit vielen Dateien aufteilen



Thomas Ulrich Nockmann <tun@koeln-lug.de> schrieb:

> On Donnerstag, 8. Januar 2004 14:25, Torsten Schneider wrote:
> [...]
>
>> Das Semikolon trennt mehrere Statements auf einer Zeile ab, du
>> fügst also jedem Statement noch ein leeres Statement an.

Außerdem werden Semikolons auch zum Abtrennen der Teile von Compound
Commands gebraucht, also z.B. für 

if list; then list; [elif list; then list; ] ...[else list;] fi

> koennte dieses offensichtlich falsch verwendete Semikolon ggf. dazu 
> fuehren, ein Skript, respektive dessen Abarbeitung, langsamer zu 
> machen? Theoretisch gesehen, so denke ich mir jetzt einfach 'mal, 
> muesste es dann wohl doch der Fall sein?

Die Shell liest dahinter ja direkt das Newline und tut einfach
nichts. Ich habe es mal probiert; lustigerweise ist es sogar etwas
schneller:

bin/testing/wielange{1,2,3}
#!/bin/sh

i=0

while [ $i -lt 10000 ]; do
        i=$(($i + 1))           #wielange1
        i=$(($i + 1));          #wielange2
        i=$(($i + 1)); (true)   #wielange3
#       i=$(($i + 1)); (set -e) #vergleichbar langsam
done
frank@alhambra:~$ time bin/testing/wielange1

real    0m0.986s
user    0m0.940s
sys     0m0.010s
frank@alhambra:~$ time bin/testing/wielange2

real    0m0.969s
user    0m0.910s
sys     0m0.040s

frank@alhambra:~$ time bin/testing/wielange3

real    0m4.955s
user    0m2.350s
sys     0m2.480s
frank@alhambra:~$ 

Mittelwerte: 

ohne Semikolon: 967+/-11 ms (etwa 10 Versuche)
mit Semikolon: 967-/-9 ms (etwa 10 Versuche)
mit neuer Shell: 5061+/-87 ms (5 Versuche)

Gruß, Frank
-- 
Frank Küster, Biozentrum der Univ. Basel
Abt. Biophysikalische Chemie



Reply to: