2013-06-28 154 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 
    } 
} 

我當 「* Demo * Expiration * Date * Reached *」中的代碼塊執行時,請繼續收到以下錯誤消息:

編譯時丟失了括號結束 - 「^ [\ [C」

我想我失去了一些東西基本在這裏.....

THX!

回答

1

^[可能意味着是單個字符(Escape)。你可能需要發送一個文字反斜槓和開放的括號,這兩個都需要esacped。試試:

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

謝謝glenn !!這裏爲我工作發送 - 「\ 033 \\ [C」; – GoinOff

+0

讓我補充說我的TERM = linux工作,不會像vt100 – GoinOff