Bash Не ожидайте ответа на нажатие клавиши при использовании spawn -open - PullRequest
0 голосов
/ 23 января 2019

Я ожидаю, что bash войдет в настройки BIOS при загрузке машины через последовательное перенаправление этой целевой машины.Ниже приведен мой сценарий, в котором я использую spawn для чтения и записи последовательного порта, но нажатие клавиши (Del), используемое для входа в BIOS, не отвечает в этом сценарии

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 успешно.

Кто-нибудь может помочь в этом?Благодаря.

1 Ответ

0 голосов
/ 23 января 2019

^[ означает CTRL-[, что является символом ESC (0x1b или 033), поэтому вы можете попробовать вот так:

send -- "\033\[3~"
...