7

我正在编写一个将从 cron 调用的 bash 脚本。

bash 脚本运行一个 python 命令,该命令通过使用 pythons os.isatty 函数在终端中进行感知,并根据它是手动运行还是通过 cron 运行输出不同的内容。这使调试变得非常困难,我想使它始终假定它不在 TTY 中。

我希望能够在 bash 脚本中添加一些东西来欺骗 python 脚本,使其没有在终端中运行,因此总是输出相同的东西。

为了确认,我可以控制 bash 脚本,但不想编辑 python,因为这是一个打包的应用程序。

有任何想法吗?

我希望这是有道理的。

非常感谢您提前。

4

1 回答 1

7

您可以将输出重定向到cat(假设脚本测试sys.stdout的文件描述符的atty-ness)。

python myscript.py | cat

一个.py

import sys
print sys.stdout.isatty()

去测试:

> python a.py
True
> python a.py | cat
False
于 2013-04-16T16:26:23.797 回答