从bash脚本中愚弄python的os.isatty

Dog*_*ody 6 python bash cron tty

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

bash脚本运行一个python命令,通过使用pythons os.isatty函数检测它何时在终端中, 并输出不同的东西,具体取决于它是手动运行还是通过cron运行.这使得调试非常困难,我想这样做,以便它总是假设它不在TTY中.

我希望能够在bash脚本中添加一些内容来欺骗它不在终端中运行的python脚本,因此总是输出相同的东西.

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

有任何想法吗?

我希望这是有道理的.

非常感谢你提前.

shx*_*hx2 5

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

python myscript.py | cat
Run Code Online (Sandbox Code Playgroud)

a.py

import sys
print sys.stdout.isatty()
Run Code Online (Sandbox Code Playgroud)

去测试:

> python a.py
True
> python a.py | cat
False
Run Code Online (Sandbox Code Playgroud)

  • 辉煌!这就像一个魅力.谢谢 :-) (3认同)