Python和shell问题:.sh文件不完全由Python运行

Python和shell问题:.sh文件不完全由Python运行,python,shell,eof,Python,Shell,Eof,我正在编写一个Python脚本,在其中创建并执行一个shell文件 这个shell文件由几行组成,每行都是一个shell命令,带有一些grep、sort等。。。 下面是my_shell_file.sh中这些命令行之一的示例: 每行之间唯一的变化是pattern4和result_file.txt的名称 我的Python脚本创建了我的_shell _file.sh,它包含了我所期望的所有命令行,并且没有任何语法错误。在下一步中,当尝试使用以下命令运行此shell文件时,会出现问题: os.syste

我正在编写一个Python脚本,在其中创建并执行一个shell文件

这个shell文件由几行组成,每行都是一个shell命令,带有一些grep、sort等。。。 下面是my_shell_file.sh中这些命令行之一的示例:

每行之间唯一的变化是pattern4和result_file.txt的名称

我的Python脚本创建了我的_shell _file.sh,它包含了我所期望的所有命令行,并且没有任何语法错误。在下一步中,当尝试使用以下命令运行此shell文件时,会出现问题:

os.system("sh ./my_shell_file.sh")
我希望在my_shell_file.sh中编写的每个命令行都有一个result_file.txt。问题是并非my_shell_file.sh中的所有命令行都在运行

总是有几行,最后一行,从来没有运行过,我不知道为什么。 这看起来很奇怪,因为1这意味着Python可以运行my_shell_file.sh,所以他为什么不运行最后一行2我看my_shell_file.sh的每一行之间没有语法差异,所以我不知道为什么它会在结尾前停几行,3它停的那一行可能会因尝试而有所不同

有时在我的日志文件中,我会看到如下消息:

./my_shell_file.sh: line 63: Premature EOF while searching for the correspondant « " »
./my_shell_file.sh: line 64: Syntax error: Premature EOF
看起来一个«»没有关闭,buuuut。。。我没有看到语法错误。。。另外,如果我只是更改我的_shell _file.sh中的行的顺序,问题就可以解决了

此外,如果我自己运行Python创建的my_shell_file.sh,就不会有问题,所有命令行都会运行

有人知道为什么在通过Python运行脚本时随机跳过最后几行吗

先谢谢你


Python版本:2.6.6

能否包含生成的失败脚本?在运行系统调用之前是否确实关闭了shell脚本?Yann:是的,我在创建shell脚本之前关闭了shell脚本。Whatsmore我的Python脚本由两个单独调用的模块组成。第一个创建shell脚本,第二个执行它。因此,用户必须运行Python脚本两次,Python在第一个模块和第二个模块之间退出。Etan,我找不到在主题中添加附件文件的位置。我想,如果我只是将整个shell脚本复制/粘贴到一条评论中,这不好吗?
./my_shell_file.sh: line 63: Premature EOF while searching for the correspondant « " »
./my_shell_file.sh: line 64: Syntax error: Premature EOF