Mehrere Befehle an time

L

larry

Tripel-As
Hallo!

Gibt es eine Möglichkeit an /usr/bin/time mehrere Befehle zu liefern ohne diese dabei in eine separate Datei zu exportieren?
Mit dem Built-in-Befehl der Shell kann ich zum Beispiel schreiben

test {
echo string1
echo string2
}

Irgendwelche Ideen?
Danke
 
Welche Shell ist es denn?

Code:
slackfan [~] time $(sleep 2; sleep 1)

real    0m3.043s
user    0m0.027s
sys     0m0.008s

cu
 
Dann erklär mir doch bitte wenigstens, worin der Unterschied besteht :)
 
Wo wir gerade bei Unterschieden sind:

Code:
time `sleep 1 ; sleep 2`

real	0m3.008s
user	0m0.002s
sys	0m0.006s
 
Die Klammern ohne '$' oeffnen eine Untershell, fuehren die Befehle in den Klammern aus, und kehren dann zur eigentlichen Shell zurueck, in der time aufgerufen wurde, so dass time die Dauer aller in den Klammern aufgefuehrten Programme zurueckgibt.
Mit '$' geschieht etwas aehnliches, allerdings wird die Ausgabe des Klammerausdrucks (ob effektiv des letzten oder des ersten, weiss ich nicht auswendig) als Befehl ausgefuehrt (das gilt auch fuehr die "`" von Rain_Maker). Da 'sleep' nichts ausgibt, bekommst Du keine Fehlermeldung, aber schau Dir mal den Unterschied zwischen
Code:
 time (ls)
und
Code:
 time $(ls)
bzw.
Code:
 time `ls`
an.
Die letzten beiden Ausdruecke geben eine Fehlermeldung zurueck (sofern die erste Datei, die 'ls' anzeigt, nicht zufaellig ein Befehl ist. Ein Verzeichnis, in dem NUR die Dateien rm, s,t,u,v liegen, wuerde nach
Code:
time $(ls)
nur noch die Datei "rm" enthalten, weil der Befehl "ls" den String "rm s t u v" zurueckgibt und dieser dann wegen des "$"-Zeichens ausgefueht wird! ;-) )
 
Am liebsten wär mir eine Lösung für /bin/sh. (Außerdem soll das ganze für /usr/bin/time funktionieren.)
 
sh ist doch heute meistens ein Symlink auf bash, funktioniert denn obiges Beispiel nicht?
 
Was eigentlich immer funktionieren sollte, wenn die Shell sich einigermassen so verhält wie die alte Bourne-Shell (hier z.B. auf einer nicht mehr ganz taufrischen HP-UX-Kiste):
Code:
$ uname -s -r
HP-UX B.11.11
$ /usr/old/bin/sh        # Bourne Shell
$ type time
time is /usr/bin/time
$ time sh -c "sleep 1; sleep 2"

real        3.0
user        0.0
sys         0.0
$

Gruss
 

Ähnliche Themen

Rückgabe eines Befehls

CentOS 5.8 –SQL Abfrage– HTML wird generiert und daraus müssen mehrere Mails versendet werden

Unix Webserver mit HTML Seite erstellen

[Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

Wie komme ich an den Inhalt des Inhalts einer Variable?

Zurück
Oben