为什么它在从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?
答案 0 :(得分:1)
你可以让python做:
var = "hello world"
f = open('log.log', 'r+')
print(var)
f.write(var)
答案 1 :(得分:1)
在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 +”,如果不存在则会创建一个新文件,如果存在,则重写该文件。
您还可以使用日期时间在每个日志上添加时间戳,如下所示:
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()
我不知道这个脚本是否会定期运行,其中知道创建日志的日期会有用,或者它是否是一个完成的脚本,但我认为您可能会发现日期记录有用。