在pexpect中使用if / else语句

时间:2018-07-18 12:11:55

标签: pexpect

我正在尝试编写一个脚本,在该脚本中,我希望借助交互式pexpect模块使用tacacs凭据访问该交换机。但是我想使用if / else语句,并因此发送不同的命令。

例如:

1)期望输入“ 密码:”并发送登录密码。

abc:PythonScripts$ ssh username@ip_address
password:

2)期望“ 确定要继续连接(是/否)?”并发送命令“ ”。

abc:PythonScripts$ ssh username@ip_address
Are you sure you want to continue connecting (yes/no)?

1 个答案:

答案 0 :(得分:0)

嘿,你解决了吗? 我处于同样的情况,我正在尝试评估 c.expect('connecting') 的返回值 并在 if 语句中使用它,但我不确定,因为我也试图将所有命令放入一个函数中,只是调用它而不是多次编写它

编辑:

我找到了这个

index = p.expect (['good', 'bad', pexpect.EOF, pexpect.TIMEOUT])
if index == 0:
    do_something()
elif index == 1:
    do_something_else()
elif index == 2:
    do_some_other_thing()
elif index == 3:
    do_something_completely_different()

instead of code like this:

try:
    index = p.expect (['good', 'bad'])
    if index == 0:
        do_something()
    elif index == 1:
        do_something_else()
except EOF:
    do_some_other_thing()
except TIMEOUT:
    do_something_completely_different()

源代码:http://www.bx.psu.edu/~nate/pexpect/pexpect.html