2013-06-28 2 views
0

У меня есть сценарий ожидания, который дает мне проблемы с помощью стрелки вправо. Цель моего скрипта - установить программу автоматически для наших клиентов.Неисправность клавишей со стрелкой вправо

Использование autoexpect для проверки Стрелка вправо возвращает:

посыла - "^ [\ [C"

мой сценарий (ожидается версия 5.43.0):

#!/usr/bin/expect -- 
if [ catch "spawn /mnt/install.sh" reason ] { 
    send_user "failed to spawn /mnt/install.sh script: $reason\n" 
    exit 1 
} 

expect { 
    timeout { send_user "Timeout reached! Aborting..."; return} 
    eof  { send_user "\r\nInstallation complete!!\r\n"; return} 
    "*Demo*Expiration*Date*Reached*" { 
     sleep .5 
     send -- "^[\[C"; 
     sleep .5 
     send "\r"; 
     exp_continue 
    } 
} 

I продолжайте получать следующее сообщение об ошибке, когда блок кода находится в пределах "* Демонстрация * Истечение срока действия * Дата * Достигнута *" выполняет:

Отсутствует закрытая скобка при компиляции конец - "^ [\ [C"

Я думаю, что я что-то основное здесь отсутствует .....

Thx !!

ответ

1

^[, вероятно, предназначен для одиночного персонажа (Escape). и вам, вероятно, нужно отправить буквальную обратную косую черту и открыть скобку, обе из которых нужно вытащить. Попробуйте:

send -- "\033\\\[C" 
+0

Thanks glenn !! Здесь работает для меня отправить - "\ 033 \\ [C"; – GoinOff

+0

Добавлю, что моя работа с TERM = linux, не будет работать как vt100 – GoinOff