0

为什么它在执行时不提供输出 bash >>,以便可以将其保存到文件中。

$ cat > /var/tmp/runme.sh << \EOF
#!/bin/bash
export DISPLAY=:0.0
python /var/tmp/t.py >> /var/tmp/log.log &
sleep 3
ps aux | grep "t.py" | grep -v "grep" | awk '{print $2}' | xargs kill -9;

EOF


$ cat > /var/tmp/t.py << \EOF
import sys
print "[RAN]: OK"
sys.stdout.write("[RAN]: OK")
sys.stdout.flush()
EOF

$ chmod +x /var/tmp/runme.sh ; /var/tmp/runme.sh & 

$ cat /var/tmp/log.log

$ tail -f /var/tmp/log.log

^ 什么也没显示。

如何使用 Bash 和 Python 组合将输出输出到 log.log?

4

2 回答 2

0

在 var/tmp/t.py 中,执行类似于以下的操作:

var = "[RAN]: OK"
f = open("log.log", "a+")
f.write(var)
print var
f.close()

使用“a+”参数打开“log.log”将允许您将 t.py 的输出附加到文件中,以便您可以跟踪 t.py 的多次运行。如果您只想要最近一次运行的输出,您可以使用“w+”,如果不存在则创建一个新文件,如果存在则重写该文件。

您还可以使用 datetime 在每个日志上放置时间戳,如下所示:

import datetime
now = datetime.datetime.now()
var = "Date: " + now.strftime("%Y-%m-%d %H:%M") + "\n" +  "[RAN]: OK"
f = open("log.log", "a+")
f.write(var)
print var
f.close()

我不知道这个脚本是否是您将定期运行的脚本,其中知道创建日志的日期会很有用,或者它是否是一个完成的脚本,但我认为您可能会发现日期日志记录很有用。

于 2013-08-06T05:50:50.403 回答
0

you could have python do:

var = "hello world"
f = open('log.log', 'r+')
print(var)
f.write(var)
于 2013-08-03T14:43:01.420 回答