我有一个期望脚本,如下所示
#!/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。
我该怎么做?任何帮助将不胜感激。
答案 0 :(得分:0)
...但是有什么命令可以跟随send_user, 喜欢$?在shell中打印上次执行的命令的状态
有一个全局变量" errorCode"包含失败的命令的错误代码。 请参阅Tcl手册"调试和错误":