我正在尝试编写一个脚本,在该脚本中,我希望借助交互式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)?
答案 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()