2016-07-27 109 views
0

我編寫了下面的代碼爲多個文件執行python腳本。當script.py執行並且循環中的第一個文件完成時,父進程存在。我沒有找到辦法來阻止這個退出。Bash子進程在執行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 

回答

2

它不退出。由於您是exec,所以shell將替換爲,這是python

刪除exec以使python進程產生爲當前shell的子進程。

也沒有必要在這裏eval,並$args可以通過[email protected]替代:

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