2013-11-04 27 views
0

我正在編寫一些Python代碼來檢測選項ROM初始化的開始併發送相應的控制字符以進入選項ROM設置實用程序。這在大多數情況下都是可行的(control-C,control-Y,control-S ...),但是當control-R是所需密鑰時,字符不會被識別。通過Python發送Control-R不能識別Python/Pexpect

我懷疑這是因爲control-R是某種特殊控制字符,終端正在解釋並且沒有傳遞,但找不到任何對它的引用。我試着用ESC和其他一些控制字符來加前綴,但似乎無法使其識別。代碼很簡單:

CONTROL_R = '\x12' 
    print("Sending control-R to enter setup") 
    spawn_id.send(CONTROL_R)   # send character to console 

任何指針或建議表示讚賞。

+0

什麼是你期望攔截它的「終端」?你是否產生了一個shell來運行該實用程序,而不是直接產生它? – abarnert

+0

你能告訴你如何創建'spawn_id'嗎? –

+0

我正在使用pexpect.spawn('ssh -o StrictHostKeyChecking = no -o UserKnownHostsFile =/dev/null -o PubkeyAuthentication = no username @ pw) – user2954311

回答

1

我從一個同事那Control-R鍵啓動bash shell中的反向我搜索教訓。這會導致shell在使用選項ROM代碼處理之前先吃掉該字符。感謝那些給你建議的人。

相關問題