実行する前に、設定する必要があるいくつかのユーザー入力オプションを要求する python スクリプトがあります。私が疑問に思っていたのは、bash スクリプトで定義されているようにオプションを自動入力する bash スクリプトを作成することは可能ですか?
2 に答える
次のようなことを試してください:
echo -n 'First answer\nSecond answer\n' | python script.py
より要求の厳しいタスクについては、expectを使用してください。
あなたが探しているのはExpect-lite ( http://expect-lite.sourceforge.net ) だと思います。これは、cli プログラムへの応答の受け渡しを簡単に自動化する単純なスクリプト言語です。非常に軽量で、Python プログラムを実行するスクリプトを作成できます。
たとえば、ssh を介したパスワード ログインを自動化したい場合は、次のように記述します。
>ssh root@host-021
<assword:
>>secret_password
# issue a command once logged in
>ls
>exit
ただし、出力は少し乱雑になる可能性があります。代わりに、Python モジュールpexpect ( http://www.noah.org/wiki/pexpect ) を使用できます。これにより、単純な python スクリプトを記述して、プロンプトに自動的に応答しながら他の python スクリプトを実行できます。
上記と同じ例は、次のようになります。
child = pexpect.spawn('ssh root@host-021')
child.expect('assword:')
child.sendline('secret_password')
child.sendline('ls')
child.sendline('exit')
これにより、出力がマスクされますが、ログファイルを設定して出力を記録できます。so のように、ログファイルを STDOUT として設定することもできますchild.logfile = sys.stdout
。
あなたにとって役立つかもしれない、それでできることはもっとたくさんあり、ドキュメントに示されています。