存储期望脚本中最后执行的命令的输出

时间:2014-11-12 18:44:16

标签: python shell expect

我有一个期望脚本,如下所示

#!/usr/bin/expect -f
set user [lrange $argv 0 0] 
set password [lrange $argv 1 1] 
set ipaddr [lrange $argv 2 2]
set command [lrange $argv 3 3]
set timeout 10
# now connect to remote UNIX box (ipaddr) with given script to execute
spawn ssh -o StrictHostKeyChecking=no $user@$ipaddr $command
expect "*?assword:*"
# Send password aka $password
send -- "$password\r"
interact
# send blank line (\r) to make sure we get back to gui
#send -- "\r"

这个期望脚本是从python脚本调用的,它将下面的字符串传递给命令变量

“/ bin / bash customStart.sh”

$ command变量具有上述值。

此customStart.sh根据条件回显“正在运行”或“未运行”。 我想通过expect脚本在python脚本中捕获这个“运行”或“不运行”。

简而言之,流程如下。

python script ---> expect script ---> customStart.sh

customStart.sh -------“正在运行”或“未运行”----->期待脚本--->蟒。

Python使用subprocess.check_output()调用expect脚本。所以首先我需要在expect脚本中运行“running”或“not running”,然后将其传递给python。

我该怎么做?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

  

...但是有什么命令可以跟随send_user,   喜欢$?在shell中打印上次执行的命令的状态

有一个全局变量" errorCode"包含失败的命令的错误代码。 请参阅Tcl手册"调试和错误":

https://www.tcl.tk/man/tcl8.5/tutorial/Tcl36.html