Befehl in Script verzögert ausführen lassen so das der nächste Befehl aber bereits ausgeführt wird möglich ?

  • Hi,


    Sagt mal ist es möglich in nem Shellscript mit mehreren Befehlen drinnen
    z.b: den dritten Befehl etwas verzögert auszuführen wobei aber der (nächste) vierte Befehl ausgeführt wird
    so das man dessen Ausgabe in Befehl drei mit verarbeiten könnte.


    Is etwas schwer zu erklären das Ganze aber Hintergrund ist das ich nen Befehl starte der die Pid eines Prozesses abfrägt
    welcher aber erst danach startet und daher wird in dem ersten Befehl ja dessen PID nicht gefunden.


    Gruss
    Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

  • Zeig doch mal Code.


    üblicherweise macht man es ja eher so
    ---
    ls | grep test
    ---
    Da verarbeitet greep die Ausgabe von ls.


    PID abfragen sollte eher so gehen
    ---
    programm parameter &
    PID=$!
    echo $PID
    ---
    Wobei es sein kann das programm erst nach echo gestartet wird. Gut zu sehen mit "set -x" am Anfang des Scriptes.


    cu

  • Hi Keine Ahnung,


    Danke für Antwort erstmal !


    Zitat

    Zeig doch mal Code.

    Poste ich Morgen, inzwischen hab ich aber ne Lösung gefunden und zwar mit bitweisem und also mit &
    kann man Befehle parallel starten dann noch nen sleep 2 eingebaut nur zur Sicherheit für den ersten Befehl davon und klappt anscheinend.


    Gruss
    Bert

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

    Einmal editiert, zuletzt von Bert ()

  • Hi,


    Also konkret gehts darum um für dieses Script per Vdr Plugin bgprocess nen Fortschrittsbalken angezeigt zu bekommen.
    Dabei gehts um diese Passagen aus dem Script;


    und;

    Code
    f_grab_bgproc "$TITEL"
    echo -e "\n[$PRG] *** Starte DVD-Rippen mit Vobcopy ***" | tee -a $LOGFILE
    $SVDRPSEND -d localhost "MESG ! DVD-RIPPEN MIT VOBCOPY STARTET ! "
    $NICE -n 19 $VOBCOPY -i $MOUNTPOINT -m -t $TITEL -o $DVD_OUTPUTDIR >> $VOBCOPY_TMP_LOGFILE 2>&1


    wobei die while Schleife vom obersten Code also while ( pidof -x $RIPPRG ); do (in der Variablen $RIPPRG steht nix anderes als vobcopy) dann nicht funktionieren konnte
    da ja das Programmm vobcopy erst danach startete.


    Nun hab ich die beiden Passagen mal so abgeändert;


    und;

    Code
    echo -e "\n[$PRG] *** Starte DVD-Rippen mit Vobcopy ***" | tee -a $LOGFILE
    $SVDRPSEND -d localhost "MESG ! DVD-RIPPEN MIT VOBCOPY STARTET ! "
    f_grab_bgproc "$TITEL" & $NICE -n 19 $VOBCOPY -i $MOUNTPOINT -m -t $TITEL -o $DVD_OUTPUTDIR >> $VOBCOPY_TMP_LOGFILE 2>&1


    und damit klappt das so wies aussieht.
    Klar ich hätte auch statt while ( pidof -x $RIPPRG ); do lieber while ( pidof -x name-des_scripts ); do nehmen können damit gehts dann natürlich ohne ner Verzögerung aber das wollte ich nicht da ich bgprocess später noch für HandBrake auch aufrufen muss. Wäre das Script nach dem Rippen zu Ende dann wär das mit while ( pidof -x name-des_scripts ); do aber ok gewesen.


    Übrigens den Code zum bgprocess hab ich mir von der Scriptsammlung von  dad401 abgesehen - der löst das hervorragend für HandBrake
    aber für z.b: vobcopy geht das so nicht wobei mit vobcopy könnte man schon auch eventuell die Prozente des Fortschritts aus dessem Log ziehen
    allerdings aber fangen die ja für jedes vob file erneut bei Null an deshalb hab ich mir die Variante mit du einfallen lassen welche gar nicht so schlecht klappt.


    Wie auch immer, ich häng unten noch das ganze Script an welches aber keinesfalls schon fertig ist, und wenns bessere Ideen gibt
    sowohl für die Fortschrittsanzeige mit bgprocess als auch mit dem Verzögern der funktion f_grab_bgproc um mit der Pid des darauffolgenden Befehles
    weiterarbeiten zu können würds mich freuen wenn die hier gepostet würden.


    Gruss
    Bert

    Dateien

    Hardware: Intel Core i9-9900K, ASUS ROG Maximus XI Hero, MSI GeForce GTX 1050 Ti (vdpau), Dvbsky S952 V3 mit 2X DVB-S2 Tuner
    Multibootsystem (yavdr-ansible auf Ubuntu-20.04, Kubuntu-20.04 Focal Fossa, Win10)
    yavdr-ansible, Ausgabe über Nvidia vdpau

    Einmal editiert, zuletzt von Bert ()

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!