执行eval exec时,Bash子进程会杀死父进程

时间:2016-07-27 09:32:21

标签: bash

我编写了以下代码来执行多个文件的python脚本。当script.py执行并完成循环中的第一个文件时,父进程存在。我没有办法找到这个出口。

#!/bin/bash

args=
for arg in "$@";
do
  args="$args '$arg'"
done

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

1 个答案:

答案 0 :(得分:2)

它没有退出。 python进程已将替换,因为您exec正在进行此操作。

删除exec以使python进程成为当前shell的子进程。

这里也不需要eval,而$args可以替换为$@

python script.py "$file" "$@"