linux - 使用 spawn -open 时,Bash Expect 不响应击键
问题描述
当机器通过该目标机器的串行重定向启动时,我期望 bash 进入 BIOS 设置。以下是我spawn
用来读取和写入串行端口的脚本,但用于进入 BIOS 的击键(Del)在该脚本中没有响应
set timeout -1
match_max 100000
set port /dev/ttyUSB0
set rate 115200
exec stty -F $port $rate
spawn -open [open $port w+]
expect "American Megatrends"
sleep 1
send -- "^\[\[3~"
send_user "\nok\n"
最后一行“ok”被打印出来,这意味着我的关键字是预期的,但它没有进入 BIOS 设置
同时在另一个脚本中,它可以读取和写入screen /dev/ttyUSB0 115200
能够发送击键并成功进入 BIOS 设置。
有人可以帮忙吗?谢谢。
解决方案
^[
表示CTRL-[
哪个是 ESC 字符(0x1b 或 033),所以你可以这样尝试:
send -- "\033\[3~"
推荐阅读
- jquery - 引导轮播仅适用于 jquery slim
- android - 无法从后端服务器获取 jwt
- python - 带有硒的机器人,我无法弄清楚这个错误
- exception - Erlang中的function_clause和badarg有什么区别?
- python - 用于遍历 mysql 表和更改表空间的 Python 脚本
- python - 如何修复“TypeError:列表索引必须是整数或切片,而不是元组”
- android - 应用程序在发布时崩溃,但在调试模式下工作正常
- python - 在 TF 中,自动命名为 Conv2DBackpropInput 的张量代表什么?
- sql-server - 如何在sql server中生成员工时间表
- android - 每当我按下按钮查看我的列表视图时,应用程序总是崩溃