2013-01-14 33 views
1

我有一堆腳本已經做了一些東西,我只想添加這個功能給他們。可以使用期望SSH進入計算機並使用單個bash行進行交互?

我想採取以下簡單的expect腳本,並將其轉換爲bash shell命令,我可以將它放在bash腳本中或從命令行運行。

spawn ssh $machine 
expect { 
    "~]" { 
     send "/etc/loginscript.sh\r" 
     interact 
    } 
} 

我一直沒能找到一種方法來做到這一點沒有救了我的期望腳本文件,並從bash的調用它。這不是一個有效的解決方案,我需要能夠在只讀系統上從CMD調用該命令。

任何幫助將不勝感激。

回答

1

使用期望的-c選項:

expect -c "spawn ssh \"$machine\"; expect { \"~]\" {send \"/etc/loginscript.sh\r\"; interact}}" 
+0

在這種情況下,單引號讓我的變量不可讀。我能夠做出不錯的解決方法,但使用-c仍然沒有做我想做的。它創建ssh產卵,然後沒有其他事情發生,它超時。我現在可能就放棄這一點。 – SuperTetelman