[英]store output of last executed command in expect script
我有一個期望腳本如下
#!/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根據條件回顯“正在運行”或“未運行”。 我想通過期望腳本捕獲python腳本中的“正在運行”或“未運行”。
簡而言之,流程如下。
python腳本->期望腳本-> customStart.sh
customStart.sh -------“正在運行”或“未運行” ----->期望腳本---> python。
Python使用subprocess.check_output()調用Expect腳本。 因此,首先我需要在“期望”腳本中引入“正在運行”或“未運行”,然后可以將其傳遞給python。
我應該怎么做? 任何幫助,將不勝感激。
...但是在期望中有什么命令應該跟在send_user之后,例如$? 在shell中,它顯示上一次執行的命令的狀態
有一個全局變量“ errorCode”,其中包含來自失敗命令的錯誤代碼。 請參閱Tcl手冊“調試和錯誤”:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.