sleep in awk

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von flappinski, 07.03.2007.

  1. #1 flappinski, 07.03.2007
    flappinski

    flappinski Foren As

    Dabei seit:
    31.03.2006
    Beiträge:
    87
    Zustimmungen:
    0
    Hallo, wenn ich "sleep 10" mit Strg-C abbreche, habe ich einnen Exit-Status von 120, wie erwünscht.
    Wenn ich aber folgendermassen innerhalb eines Awk-Scripts starte, bekomme ich immer 0! Mache ich da was falsch? Bei anderen System-Befehlen innerhalb von awk funktioniert das doch auch bei mir?

    if (system("sleep 10")!=0)) exit1;


    das problem an der sache ist, dass ich aus einer Schleife nicht rauskomme...

    gibt es eine andere Möglichkeit, innerhalb einew awk-scriptes zu warten?
     
  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 Schlaubi_fi.de, 07.03.2007
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Hallo,

    das kann (auch wenn nicht weiß wo Du das verwendest) schon mal nicht
    funktionieren exit1 ist kein Kommando...aber damit sollten wir uns
    nicht aufhalten. Generell: Ein Programm bzw. Skript absichtlich "schlafen
    zu legen" sollte in den meisten Fällen vermieden werden.
    Beschreib doch bitte mal genauer, was Du vor hast, dann kann Dir sicherlich
    besser geholfen werden - für meine Begriffe ist Deine Angabe zu dürftig :think:
     
  4. #3 flappinski, 08.03.2007
    flappinski

    flappinski Foren As

    Dabei seit:
    31.03.2006
    Beiträge:
    87
    Zustimmungen:
    0
    o.k. sorry:
    also, ich es gibt Dateien, auf die mein Programm nur dann zugreifen soll, wenn nicht ein anderer User mit dem gleichen Programm gleichzeitig zugreift.
    Ich schreibe also ein Lock-File in das /Tmp-Verzeichnis. Wenn dieses existiert (also vom anderen User), dann soll das Programm mal für ein paar Sekunden warten und es dann nochmal versuchen.
    das alles funktionert auch wunderbar (mit dem sleep-Befehl), jetzt kommt der Haken:
    wenn ich das Awk-Script abbbrechen will, solange es wartet, bricht immer nur der sleep-Befehl ab, aber nicht das Awk-Skript. Deshalb habe ich versucht, den Exit-Statuts von dem System-Befehl zu testen um eventuell das Awk-Script zu beenden.
    Jetzt habe ich wahrscheinlich endgültig alle Klarheiten beseitigt.
    Probiert es doch bitte mal folgendes in der bash:

    echo . | awk '{system("sleep 20"); print "hat nicht geklappt"}'

    könnt ihr das Skript abbrechen?

    Danke,
    Stephan
     
  5. #4 Wolfgang, 08.03.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Habe ich sauber abgebrochen mit Cntrl+C.
    Ich kann sleep nicht abbrechen, sondern nur das gesamte awk-Script.

    Welches OS verwendest du?

    Gruß Wolfgang
     
  6. #5 flappinski, 09.03.2007
    flappinski

    flappinski Foren As

    Dabei seit:
    31.03.2006
    Beiträge:
    87
    Zustimmungen:
    0
    ubuntu 6.10, gibt es da ein problem?

    aber dass es bei Dir funktioniert, beruhigt mich wenigstens in meiner awk-script-schreiber-ehre

    MOMENT: wenn bei dir "hat nicht geklappt" erscheint, so wie in dem Zitat, dann hast Du doch das Skript nicht abgebrochen, oder?
     
  7. #6 Wolfgang, 09.03.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Ich bin nicht so der awk-fan, verwende dafür immer perl.

    Natürlich ist das ein Irrtum meinerseits. Ich habe sleep zwar unterbrochen, aber dadurch ist das Script zum Ende gekommen.
    Du kannst das awk-Script nicht unterbrechen, weil sleep ein Subprozess von awk ist, den awk nicht zu überwachen (returnwert) scheint.
    Warum sleep allerding keinen Returnstatus ausgibt, kann ich momentan auch nicht sagen.
    Immerhin kannst du mit mawk das gesamte Script abbrechen.
    Schau dir auch mal das hier an, was bei mir unter awk nicht geht!

    Hier wird gawk verwendet!
    http://sunsite.ualberta.ca/Documentation/Gnu/gawk-3.0.6/html_node/gawk_167.html

    Gruß Wolfgang
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

sleep in awk

Die Seite wird geladen...

sleep in awk - Ähnliche Themen

  1. Boot has failed, sleeping forever

    Boot has failed, sleeping forever: Hallo, Leider bootet mein Centos6 nicht mehr. Ich denke der Grub ist defekt. Also dachte ich mir wenn die Auswahl kommt drück ich C für die...
  2. Samba sleep und WOL?

    Samba sleep und WOL?: Hallo liebe Community, ich habe einen Samba Server auf Debian 5.0 aufgesetzt, auf diesen Server greifen mehrere PC's zu (alle mit windows). Nun...
  3. rsync, sleep

    rsync, sleep: Hallo zusammen, Ich schreibe ein Skript, das es rsync-Prozess startet, aber nur dann, wenn ein andere rsync-Prozess fertig ist. Wenn es schon...
  4. MySQL - sleep - Connections trennen

    MySQL - sleep - Connections trennen: Hallo zusammen! Ich möchte gerne MySQL - Verbindungen vom Status "sleep" nach 300 Sekunden trennen. Wir haben jedoch ein paar Backupscripte,...
  5. Suche: Schuko-Zwischenstecker mit Sleep-Timer Funktion?

    Suche: Schuko-Zwischenstecker mit Sleep-Timer Funktion?: Hallo, ich hab schon gegoogelt aber NICHTS gefunden.. Wie der Titel schon sagt suche ich einen Zwischenstecker mit Sleep-Timer Funktion. Wo man...