0
私はリモートマシンに一連のコマンドを実行するためにpexpectを使用しており、各コマンドの終了ステータスを取得したいと考えています。しかし、私は終了ステータスを取得しようとすると、私は間違った値を取得しています。 Pexpectからpxsshを使って正しい終了ステータスを取得する方法はありますか?ここで私は出力と一緒に試したコードです。コマンドが成功しましたが、与えられた終了ステータスは255の代わりに、0Python Pexpect pxssh終了ステータスの取得
from pexpect import pxssh
try:
s = pxssh.pxssh(timeout=30, maxread=2000000, options={
"StrictHostKeyChecking": "no",
"UserKnownHostsFile": "/dev/null"})
hostname = 'my_hostname'
username = 'username'
password = 'my_pass'
s.login (hostname, username, password, port=22, auto_prompt_reset=False)
s.PROMPT = '*$'
s.sendline('uptime')
s.prompt()
print(s.before.decode('utf-8'))
s.close()
print('s exitstatus=', s.exitstatus)
except pxssh.ExceptionPxssh as e:
print("pxssh failed on login.")
print(e)
出力した:
uptime
09:10:39 up 10 days, 17:35, 4 users, load average: 0.12, 0.18, 0.16
s exitstatus= 255
私の質問に正確に答えました。コマンドと出力の両方ではなく、コマンドの出力だけを印刷する方法がありますか? – MBasith
1)Python関数を使って文字列を解析できます。 2)他のコマンドを送る前に 'sendline(' stty -echo ') 'を試すことができます。コメントにサンプルコードを貼り付けるのは簡単ではありません。あなたは新しい質問をすることができます。 – pynexj