2016-07-27 14 views
0

Ich schrieb den folgenden Code, um ein Python-Skript für mehrere Dateien auszuführen. Wenn script.py ausgeführt wird und mit der ersten Datei in der Schleife ausgeführt wird, ist der übergeordnete Prozess vorhanden. Ich habe keinen Weg gefunden, diesen Ausgang einzufangen.Bash Kind Prozess tötet Eltern beim Ausführen von eval exec

#!/bin/bash 

args= 
for arg in "[email protected]"; 
do 
    args="$args '$arg'" 
done 

for file in /home/andrew/Downloads/xmls/* 
do 
     echo $file 
     eval exec "python script.py $file $args" 
done 

Antwort

2

Es wird nicht beendet. Die Shell ist ersetzt durch die python Prozess seit du bist exec-es.

Entfernen Sie die exec, um den Prozess python als Kind der aktuellen Shell zu erstellen.

Es gibt auch keine Notwendigkeit, dass die eval hier und $args kann durch [email protected] ersetzt:

python script.py "$file" "[email protected]" 
Verwandte Themen