如何读取在期望脚本

问题描述 投票:0回答:1
的输出)。任何方法都很好。请提出想法

Expectscript.exp

#!/usr/bin/expect eval spawn ssh -oStrictHostKeyChecking=no -oCheckHostIP=no user@****** expect "Password:" send "password\r" expect "$username$" set prompt ":|#|\\\$" set timeout -1 send "cd /Users/username/Documents/folder/\r" send "python pythonscript.py arg1\r" expect $prompt
    

这是您需要在提示之前捕获输出的地方:

expect -re
python bash expect sys
1个回答
2
投票
send "cd /Users/username/Documents/folder/\r" expect $prompt send "python pythonscript.py arg1\r" expect -re "(.+)$prompt" set pythonOutput $expect_out(1,string)

阵列中输出,而数组键

expect_out
(注意,

no空间
)包含REGEX模式的第一个捕获括号的内容。
也要注意,输出将包括python命令,并以

1,string

的结尾:您可以执行以下操作:
\r\n
run作为命令

set outputLines [lrange [lmap line [split $pythonOutput \n] {regsub {\r$} $line ""}] 1 end]

trory要使用

spawn ssh -c "python pythonscript.py arg1"
expect $prompt
用于可执行命令,因为这将取回结果,并在执行后终止它们。


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.