2012-04-24 56 views
0

我正在使用perl模塊「Expect」來實現交互式會話的自動化。該腳本打算在localhost上產生一個ssh終端(比如說)。所以問題是可以使用來自同一腳本的兩個spawn命令(用於產生兩個ssh終端)。在這種情況下,這兩個產生的過程如何共享ssh終端。我發現這兩個生成的命令實際上共享ssh終端。所以終端上的UI實際上是混亂的。上述斷言是否屬實?我們可以從相同的期望腳本啓動兩個ssh終端

問題1)如果爲true,是否有更好的方法來控制訪問ssh終端的衍生進程。

場景: 1)說perl腳本「demo.pl」有兩個spawn命令,它會在本地生成一個ssh終端。 2)產生的進程實際上共享執行perl腳本的ssh終端。

問題2) 那麼有什麼辦法可以啓動一個全新的ssh終端,而不是使用現有的終端。

回答

1

終端仿真器和ssh是不同的程序。您可以產生單獨的終端,每個終端都包含一個ssh命令 - 但是與腳本無法進行交互,因爲終端正在處理與其包含的ssh的通信,但不會將其提供給您的腳本。

此處的選項是使用Perl小部件包或在「從」模式下使用終端仿真程序(例如,請參閱-S選項,以xterm爲例) - 無論哪種情況,都需要跟蹤輸入併爲每個spawnid單獨輸出,並將其引導至適當的小部件或模擬器。

相關問題