curses展示一個包含了服務器IP地址菜單,再菜單中選擇IP地址後使用Python ssh庫Paramiko連接到服務器,但是curses菜單不能終止,所以在新創建curses窗口中如何實現paramiko連接成功後的交互shell?
想想都挺麻煩的:主進程 1) 利用 tty.forkpty 創建擁有獨立pty的子進程, 2) ncurses 創建多個 window,3) 判斷輸入再轉給具體 window 對應的子進程,4) 讀取子進程的輸出再轉給 window;子進程 os.execv('/usr/bin/ssh', ...)
;這之中應該會用到 select 以避免讀寫 tty fd 時堵塞。
(不熟悉paramiko,以 /usr/bin/ssh 代替;上面的思路也僅停留在思路上,我沒實際做過)