簡體   English   中英

將最后執行的命令的輸出存儲在Expect腳本中

[英]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手冊“調試和錯誤”:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM