7

cronから呼び出されるbashスクリプトを書いています。

bash スクリプトは、 pythons os.isatty 関数を使用して端末にあることを感知する python コマンドを 実行し、手動で実行するか、cron 経由で実行するかによって異なるものを出力します。これはデバッグを非常に困難にしており、TTY では常に ISN'N であると想定するようにしたいと考えています。

bashスクリプトに何かを追加して、ターミナルで実行されていないpythonスクリプトをだまして、常に同じものを出力できるようにしたいと思います。

確認のために、私は bash スクリプトを制御していますが、これはパッケージ化されたアプリであるため、python を編集したくありません。

何か案は?

それが理にかなっていることを願っています。

事前にどうもありがとうございました。

4

1 に答える 1

7

出力をリダイレクトできます(スクリプトがファイル記述子の-nesscatをテストすると仮定します)。sys.stdoutatty

python myscript.py | cat

a.py

import sys
print sys.stdout.isatty()

テストする:

> python a.py
True
> python a.py | cat
False
于 2013-04-16T16:26:23.797 に答える