在Expect腳本中,如何在不寫入標準輸出的情況下提示用戶?是否可以通過stderr提示用戶?期望/ Tcl腳本:如何提示用戶不寫入標準輸出?
我有一個用Perl編寫的腳本,用ssh自動化一些測試。爲了自動登錄ssh,我使用Expect封裝了ssh命令,但有時ssh的密碼會在執行代碼的中途過期(例如,rsa令牌每30秒刷新一次)。
我發現這一點:How can I make an expect script prompt for a password?
偉大的工程,但它會提示通過標準輸出的用戶。我的Perl腳本讀取並解析stdout。
我想在不修改Perl代碼的情況下將其抽象到我的Expect腳本中,這有可能嗎?
編輯:我剛剛意識到我的用例很愚蠢,因爲我不確定Perl會如何與Expect腳本提示符交互,因爲我從Perl調用了Expect腳本。 :/ 但是,知道是否有可能寫信給stderr仍然是件好事。:D
謝謝!
一旦進入,密碼過期並不重要,除非您有一個非常不尋常的SSH/shell配置。不知道細節,很難給你任何有用的建議。另外,向我們展示你的代碼! – salva
問題是我需要運行一系列不同的命令到盒子。理想情況下,最好生成一個持久的ssh會話並通過該命令傳遞,但每次產生一個新會話都會更容易。我不太熟悉Perl來實現前一種方法。 –
然後,嘗試Net :: OpenSSH。 – salva