0

外部プログラム A があります。呼び出された外部プログラム A が出力 (stout) を表示しない場合に何らかのアクションを実行するスクリプトを作成したいと考えています。

これはbashまたはpythonでどのように可能ですか?

4

3 に答える 3

1

システムコールを実行し、その出力を後で使用できる変数に保存できる 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
于 2012-07-23T10:58:49.137 に答える
0

Bash スクリプトでは、出力をファイルにリダイレクトできます。ファイルの長さがゼロの場合、出力はありません。

于 2012-07-23T10:50:49.303 に答える
0

時々出力を与えるスクリプトが no.sh の場合、Python でこれを行うことができます:

import os                                                                                                                                              
x = os.popen("./no.sh")
y = x.read()
if y:
    print "Got output"
于 2012-07-23T10:55:27.050 に答える