gpt4 book ai didi

scripting - 期望-根据行和列从屏幕区域获取变量

转载 作者:行者123 更新时间:2023-12-02 04:17:45 26 4
gpt4 key购买 nike

我正在使用Expect与SSH session 和ERP程序进行自动交互。

而不是依靠正则表达式来捕获我期望脚本中的变量,是否有可能在收到用户的特定击键后将屏幕区域(例如一个字段)捕获为代码中的变量?向服务器发送其他命令并重新发送该字段?

假设订单号包含6、12、6、18(其中6是行,12-18是列),包含我的6位数订单号。我想从第6行第12到18列获取该订单号,将其复制到变量中。然后允许用户进行更多交互(或期望移至另一个菜单),然后在另一个菜单中重新发送订单号。

所以我想我的问题是:当前屏幕的内容是否在一个缓冲区中? (不是整个 session )您是否可以仅提取某个仅在屏幕上该行和列范围内存在的数据元素?

样本伪代码:

#!/usr/bin/expect -f
set env(TERM) vt100
spawn ssh -Y user@domain
#... set user/pass and other vars...
#... send commands to log into ERP
#don't time out
set timeout -1
interact {
-reset $CTRLZ {exec kill -STOP [pid]}
$CTRLA {
exp_send "menu_address\ry\r"
}
$CTRLO {
#...acquire order number variable...
#...some code I don't understand yet...

exp_send "menu_exit_sequence\r"
exp_send "menu_address\r"
exp_send $ordernumvar

}
~~
}

最佳答案

不,您不能在特定的行/列中从屏幕上抢走某些东西。但是,首先考虑一下信息如何到达屏幕。如果它是一个使用curses的基于tty的应用程序,则会使用特殊的转义序列将其输出到stdout,从而导致它出现在该行/列中。因此,“预期”那些特定的转义序列以获取该位置的内容。

关于scripting - 期望-根据行和列从屏幕区域获取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1988811/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com