単純なユースケースのように思われるものがあります。コマンドプロンプトからエミュレーターを実行するスクリプト (python または bash) を起動し、ctrl-c を入力するか終了するまでエミュレーターがコマンドを実行します。これと同じことをシェルから実行したいのですが、以下のコードが機能しません。私がやろうとしているのはテストの自動化であるため、コマンド シェルからアプリケーションに直接コマンドを発行したいと考えています。Pythonでは、次のものがあります。
import os
import subprocess
command = ['/usr/local/bin/YCTV-SIM.sh', '-Latest'] #emulator for yahoo widgets
process = subprocess.Popen( command, shell=True, stdin=subprocess.PIPE )
time.sleep(12) #wait for launch to finish
print '/widgets 1' #first command to issue
print '/key enter' #second command to issue
process.wait()
ご覧のとおり、これはかなり単純なものです。コマンド シェルから「YCTV-SIM.sh」を起動すると、入力モードになり、キー エントリがアプリケーション シェルに送信されます (YCTV-SIM.sh は生の入力を読み取ります)。テキストをこのアプリケーション シェルに直接パイプします。これまでのところ、何も起こりません。テストはコンソール ウィンドウに出力されますが、発行しようとしたコマンドにアプリケーションが応答しません。それが問題であれば、私はpython 2.6.3を使用していますが、Pythonは必要ありません..
この時点では言語は重要ではないため、PERL、Python、Bash、TCL など、あなたが提案できるものは何でも役に立ちます。