Führen Sie zwei Shell-Dateien mit Thread aus

Führen Sie zwei Shell-Dateien mit Thread aus

Wie kann ich zwei File Shells parallel ausführen, ohne dieselbe JVM gemeinsam zu nutzen? Vielleicht verwende ich Threads, aber wie führe ich zwei File Shells mit zwei Threads aus? Datei 1:

#!/bin/bash
#
# Script for running several experimentations one the same JVM
# Usage : TRACE_DIR NB_EXPE Factories... 
#

param="parameter1"
another="parameter2"

for ((i = 10; i >= 0; i -= 1))
do
echo "run my file with param another " 
done  

Datei 2:

#!/bin/bash
#
# Script for running several experimentations one the same JVM
# Usage : TRACE_DIR NB_EXPE Factories... 
#

a="101" b="400" c="500"

echo "run my programme with a b c "

Antwort1

Wenn Sie zwei Shell-Skripte parallel ausführen möchten, können Sie die folgende Syntax verwenden:

script1 & script2 &

Sehen Sie sich als Beispiel das folgende Testskript (mit dem Namen p1) an:

i=1
while true;
do
    echo "1 $((i++))"
    sleep 1
    if [ $i -gt 10 ]; then break; fi
done

Es zählt bis 10 und gibt vor dem Zähler eine „1“ aus. Nach 10 Iterationen wird es beendet.

Wenn Sie nun eine p2Version erstellen, ändern Sie einfach Folgendes echoein wenig:

    echo "2 $((i++))"

Versuchen Sie, die Skripte mit der obigen Syntax auszuführen:

$ ./p1 & ./p2 &
1 1
2 1
1 2
2 2
1 3
2 3
1 4
2 4
1 5
2 5
1 6
2 6
1 7
2 7
1 8
2 8
1 9
2 9
1 10
2 10

Wie Sie sehen, zeigen beide Skripte ihre Ausgabe an und werden nach 10 Runden beendet. Beachten Sie, dass die Ausgabe gemischt ist, d. h. beide Skripte werden parallel ausgeführt.

verwandte Informationen