Python stdout logging:terminal vs bash file

时间:2014-11-25 01:20:36

标签: python linux bash terminal stdout

我不是Bash和Python的专家,所以这个问题可能看起来很傻。

我有一个名为learn.py的Python脚本,当重定向到日志文件时,我注意到标准输出的两种不同行为。

如果我从终端调用它,我可以看到脚本运行时日志文件的大小在增加。

$ ./learn.py > file.log

但是,如果我为同一目的创建一个bash文件:

#!/bin/bash
./learn.py > file.log

脚本启动(我使用pgrep检查)但它似乎没有运行,因为日志文件保持为空。我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

我使用Logging facility for Python解决了问题,插入了

import logging
logging.basicConfig(filename='file.log',level=logging.INFO)

并用

替换print "..."的每一次出现
logging.info("...")

最终的Bash脚本:

#!/bin/bash
./learn.py

答案 1 :(得分:0)

您可以使用#!/bin/bash #echo "Type num1, num2 like a integer" echo "ex01" read num1 read num2 ##check if integer if ! [ "$num1" -eq "$num1" ] 2> /dev/null then echo "Sorry integers only" fi if ! [ "$num2" -eq "$num2" ] 2> /dev/null then echo "Sorry Integers only" fi

您还可以使用&使其在后台运行

nohup