grep & Exitcode eines bestimmten Prozesses

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von obscurus, 20.08.2004.

  1. #1 obscurus, 20.08.2004
    obscurus

    obscurus Grünschnabel

    Dabei seit:
    20.08.2004
    Beiträge:
    2
    Zustimmungen:
    0
    Ort:
    Kölle
    Hallo zusammen!

    Dies ist mein erster Eintrag, also evtl. nicht wundern... ;)


    Mein Problem:
    grep (oder ähnliches) soll nach dem 1. gefundenen Treffer aufhören, sich quasi mit dem richtigen Exitcode (0 = etwas gefunden; keine Fehler) beenden.
    Ich will dann den Exitcode von grep haben und nicht einfach nur den letzten ($?). Ich weiß nämlich nicht in welcher Reihenfolge was ausgeführt wird.

    Allgemein:
    Ich habe PER HAND ein Script zu starten, an einer bestimmten Stelle es zu beenden, einen Classenpfad zu setzen und zu guter letzt ein java-Prog zu starten.
    Dies möchte ich mit einem weiteren Script automatisieren.

    Mein Script sieht folgendermaßen aus:
    #!/bin/bash
    # Dieses Script startet automatisch den Proxy für die
    # Grinderaufzeichnung

    cd stress-1.2/

    #in besagtem Verzeichnis muß des Script "runtest" wie angegeben ausgeführt
    #werden. D.h. ". ./runtest.sh"
    #Es produziert etliche Ausgben auf StdOut. Sobald der String "starting
    #threads" ausgegeben wird, soll java abgeschossen werden.
    #Das dachte ich mach ich mit "kill"
    #Sobald grep den String "starting threads" gefunden hat, soll es abbrechen
    #und mit dem Exitcode soll dann java abgeschossen werden.

    . ./runtest.sh | grep 'starting threads'
    if [ $? = 0 ]
    then
    kill `pgrep java`
    fi

    echo $CLASSPATH

    java net.grinder.TCPProxy -httpplugin



    Eigentlich recht billig, aber ich sitze bereits seit gestern früh an diesem KLEINEN SCRIPT und reiß mir bald die Haare aus! :(

    :help:
    es wäre schön, wenn mir jemand einen Tip geben könnte, wie ich das hinbekomme!

    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. rup

    rup Haudegen

    Dabei seit:
    10.04.2002
    Beiträge:
    627
    Zustimmungen:
    0
    Auf die schnelle faellt mir nur folgendes ein (es geht aber mit Sicherheit auch eleganter):

    Code:
     
    #!/bin/bash
    
    ./runtest.sh > /tmp/runtest.log & #Starte Prog und schreibe STDOUT in temp file
    pid=$! #PID merken
    
    # alle Sekunden das Logfile nach "starting threads" durchsuchen
    # Wenn String gefunden wurde Schleife verlassen
    while ! grep "starting threads" /tmp/runtest.log  
    do
            sleep 1
    done
    
    kill $pid
    rm /tmp/runtest.log
    
     
  4. #3 bluelupo, 20.08.2004
    bluelupo

    bluelupo LangLinuxNutzer

    Dabei seit:
    23.11.2003
    Beiträge:
    119
    Zustimmungen:
    0
    Ort:
    Nahe der bayerischen Alpen
    Hi,

    so sollte es funktionieren.

    COUNTER=0
    COUNTER=`. ./runtest.sh | grep 'starting threads' | awk '{if (NR==1) {print $0}}' | wc -l`
    if [ $COUNTER -gt 0 ]; then
    kill `pgrep java`
    else
    echo "Nothing to do...."
    fi


    In die Variable COUNTER wird die Anzahl der Zeilen (wc) deines "grep", aber davon nur eine Zeile (awk), abgelegt. Das heißt du bekommst entweder das Ergenis 1 oder 0. Darauf kannst du dann in der if-Abfrage entsprechend reagieren.
     
  5. #4 obscurus, 24.08.2004
    obscurus

    obscurus Grünschnabel

    Dabei seit:
    20.08.2004
    Beiträge:
    2
    Zustimmungen:
    0
    Ort:
    Kölle
    Danke euch beiden!!

    Nun hab ich wieder "Gedankenfutter"! :)
     
  6. Anzeige

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

grep & Exitcode eines bestimmten Prozesses

Die Seite wird geladen...

grep & Exitcode eines bestimmten Prozesses - Ähnliche Themen

  1. Kurztipp: Unerwünschte grep-Ausgaben vermeiden

    Kurztipp: Unerwünschte grep-Ausgaben vermeiden: Selbst aus altbekannten Programmen kann man oft noch einiges mehr herausholen - man muss sich nur einmal gründlich mit ihnen auseinandersetzen....
  2. GNU Grep 2.19 freigegeben

    GNU Grep 2.19 freigegeben: Von dem Textsuchprogramm GNU Grep ist jetzt Version 2.19 erschienen, die um durchschnittlich zehn Prozent schneller als die Vorgängerversion...
  3. KWin 4.90.1 wartet auf Bugreports

    KWin 4.90.1 wartet auf Bugreports: Martin Gräßlin, Maintainer des KDE-Fenstermanagers, hat den Code für KWin/5 als für gut genug befunden, um ihn im erweiterten Kreis testen zu...
  4. grep Ausgabe an ls übergeben

    grep Ausgabe an ls übergeben: Kann ich die Ausgabe von grep (es sind dateinamen des lokalen verzeichnisses) irgendwie gleich weiterpipen zu ls? Also so das ich zu den...
  5. Grep bis zum ersten Vorkommen

    Grep bis zum ersten Vorkommen: Hallo Zusammen, ich habe ein kleines Problem. :) Die Ausgangssituation ist folgende: Der String...