Mehrere Befehle an time

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von larry, 01.10.2010.

  1. larry

    larry Tripel-As

    Dabei seit:
    27.11.2007
    Beiträge:
    159
    Zustimmungen:
    0
    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
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 slackfan, 01.10.2010
    slackfan

    slackfan König

    Dabei seit:
    18.04.2006
    Beiträge:
    809
    Zustimmungen:
    0
    Ort:
    Bonn
    Welche Shell ist es denn?

    Code:
    slackfan [~] time $(sleep 2; sleep 1)
    
    real    0m3.043s
    user    0m0.027s
    sys     0m0.008s
    
    cu
     
  4. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Ohne das '$' Zeichen!
     
  5. #4 slackfan, 01.10.2010
    slackfan

    slackfan König

    Dabei seit:
    18.04.2006
    Beiträge:
    809
    Zustimmungen:
    0
    Ort:
    Bonn
    Dann erklär mir doch bitte wenigstens, worin der Unterschied besteht :)
     
  6. Gast1

    Gast1 Guest

    Wo wir gerade bei Unterschieden sind:

    Code:
    time `sleep 1 ; sleep 2`
    
    real	0m3.008s
    user	0m0.002s
    sys	0m0.006s
     
  7. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    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! ;-) )
     
  8. #7 slackfan, 02.10.2010
    slackfan

    slackfan König

    Dabei seit:
    18.04.2006
    Beiträge:
    809
    Zustimmungen:
    0
    Ort:
    Bonn
    Danke! So müssen Postings ausschauen ;)
     
  9. larry

    larry Tripel-As

    Dabei seit:
    27.11.2007
    Beiträge:
    159
    Zustimmungen:
    0
    Am liebsten wär mir eine Lösung für /bin/sh. (Außerdem soll das ganze für /usr/bin/time funktionieren.)
     
  10. larry

    larry Tripel-As

    Dabei seit:
    27.11.2007
    Beiträge:
    159
    Zustimmungen:
    0
    Hat niemand mehr ne Idee?
     
  11. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  12. #10 saeckereier, 26.10.2010
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    sh ist doch heute meistens ein Symlink auf bash, funktioniert denn obiges Beispiel nicht?
     
  13. #11 floyd62, 27.10.2010
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    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
     
Thema:

Mehrere Befehle an time

Die Seite wird geladen...

Mehrere Befehle an time - Ähnliche Themen

  1. Unix Script: Case Anweisung - Mehrere Befehle

    Unix Script: Case Anweisung - Mehrere Befehle: Hallo Zusammen, ich habe folgendes Konstrukt: case $VAR in PARAM1) Batch_cmd="$PFAD_0/../Verarbeitung.sh $PFAD_1"; BATCHPROG="";...
  2. Rekursives Auslesen über 2 Ebenen und Ausführen von mehreren Befehlen

    Rekursives Auslesen über 2 Ebenen und Ausführen von mehreren Befehlen: Hallo zusammen, mein Ziel ist das rekursive Auslesen von 2 Verzeichnisebenen und das ausführen von Befehlen auf den vorhandenen Dateien. Konkret...
  3. [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

    [Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter: Hallo zusammen, ich bin an einem Punkt angekommen, wo ich nicht mehr weiter komme und hoffe ihr könnt mir weiter helfen. Anbei ein Ausschnitt aus...
  4. Mehrere SSL Vhosts

    Mehrere SSL Vhosts: Hey zusammen, Ich habe zwei verschiedene VHosts mit einem Apache 2.4 am rennen. <VirtualHost *:80> ServerName test1.de DocumentRoot...
  5. Reverse Proxy einrichten für mehrere subdomains über Port 80

    Reverse Proxy einrichten für mehrere subdomains über Port 80: Guten Tag zusammen. Ich habe folgendes Problem. Bei mir laufen 2 Apache-Tomcat Services. Einer auf Port 8880 und einer auf Port 8080. Nun habe...