【发布时间】:2012-05-26 01:47:40
【问题描述】:
我有一个奇怪的问题。我有一个 bash 脚本,它在其中调用 python 脚本。 python脚本执行成功,但从未完全终止
Bash 脚本内容:
#! /usr/bin/env bash
python python_script.py
echo "bar"
Python 脚本内容:
#Much stuff
sys.exit("The python script just ended")
我希望在终止时看到的是:
>The python script just ended
>bar
我得到的是:
>The python script just ended
如果我键盘中断,bash 会继续:
^C>bar
什么给了?显然,exit 调用正确,并且它与调用 python 脚本的 bash 脚本中的输出语句之间没有任何关系。
(我不一定能详细说明 python 脚本中“很多东西”的工作原理,因为我正在修改我不完全理解的现有代码。我大部分都离开了脚本的工作原理单独,并且修改输出比格式化任何东西都多,但我很乐意尝试为您提供所需的任何其他信息)
【问题讨论】:
-
你能用更简单的 Python 脚本重现这个吗?
-
这很奇怪,对我来说它可以工作(在 bash 脚本中只有 sys.exit("The python script...") 和 echo bar)。
-
如果您从 .py 文件中删除除
sys.exit()行之外的所有内容,它还会中断吗?如果没有,问题可能出在#Much stuff -
如果
#Much stuff中的所有内容都被删除,它确实有效。我只是不确定我修改了什么导致了这种情况。我将原始版本与修改后的版本进行了比较,我能看到的唯一重大变化是打印格式。
标签: python bash terminate continue