有一个外部程序 A。如果被调用的外部程序 A 没有显示任何输出(粗壮),我想编写一个执行某些操作的脚本。
这在 bash 或 python 中怎么可能?
您可以使用 subprocess 模块,该模块允许您执行系统调用并将其输出存储在以后可以使用的变量中。
#!/usr/bin/python
import subprocess as sub
ur_call = '<your system call here>'
p = sub.Popen(ur_call, stdout=sub.PIPE,stderr=sub.PIPE)
output, errors = p.communicate()
if len(output) == 0 and len(errors) == 0:
pass # Do something
在 Bash 脚本中,您可以将输出重定向到文件,如果文件的长度为零,则没有输出。
如果有时给出输出的脚本是 no.sh,那么您可以在 Python 中执行此操作:
import os
x = os.popen("./no.sh")
y = x.read()
if y:
print "Got output"