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
    }
}

当“*Demo*Expiration*Date*Reached*”中的代码块执行时,我不断收到以下错误消息:

编译“send --”^[\[C”时缺少右括号

我想我在这里缺少一些基本的东西......

谢谢!!

4

1 回答 1

1

^[可能意味着是单个字符(Escape)。并且您可能需要发送文字反斜杠和左括号,这两者都需要转义。尝试:

send -- "\033\\\[C"
于 2013-06-28T14:55:17.017 回答