这可能是一个非常简单的问题。我通过shell脚本在Lubuntu OS(Cubietruck)上调用Python脚本。这是为了在启动时自动化过程(我想维护这个过程)。有没有一种简单的方法来查看Python的输出?目前Python脚本在后台运行,没有终端。我有一些需要检查的错误。脚本是:
#!/bin/sh
python recordSound.py
提前致谢。
答案 0 :(得分:4)
正确的解决方案可能会使用评论中提出的logging
。
与此同时,您必须重定向两者标准输出和标准错误流,以便将正常输出捕获为墙正如您的脚本报告的任何错误:
#!/bin/sh
python recordSound.py >> logfile.log 2&>1
请参阅one of the many web pages on that topic以探索shell脚本中可用的各种重定向。
此外,如果您需要在控制台上同时登录和实时视图,请使用tee
标准命令:
#!/bin/sh
python recordSound.py 2&>1 | tee logfile.log
答案 1 :(得分:1)
直接调用您的脚本。就像你用一个shebang(#!
)调用bash脚本一样,你可以使用#!/bin/env python
调用你的python脚本。然后,您需要做的就是通过chmod +x yourscript.py
提供可执行权限,并像应用程序一样直接调用您的脚本。这样,您就可以看到错误代码。另一种方法是使用记录器模块,这非常适合查看回溯和调试信息。
答案 2 :(得分:0)
我不是bash专家,但我认为这应该有效,因为python打印在标准输出上,除非另有说明:
#!/bin/sh
python recordSound.py >> /tmp/my_python_log.txt
每次python输出东西时,都会添加行。转到指定的路径以读取结果。如果您想要实时视图,请使用管道'|'重定向输出。
编辑:对于实时视图,您也可以在另一个终端上使用“tail -f /tmp/my_python_log.txt”命令,因为其他解决方案正在运行,这将首先在文件中打印最后10行左右,然后自动添加新行。我喜欢这个命令,非常方便查看小型Apache服务器上的活动。您甚至可以一次观看多个日志!
答案 3 :(得分:0)
答案 4 :(得分:0)
在您的 python 代码中,您可能需要添加 LitDev 以在通过 .sh 运行时立即显示打印消息
print('你的消息',flush=True)