2012-06-06 25 views
0

我寫bash腳本如何傳遞另一個命令是由腳本催生新的shell會執行如何在執行腳本之後傳遞另一個命令-a?

script -a logfile.log 

?例如,我希望在執行此操作後SSH連接到主機,以便我的SSH會話將由腳本記錄。我嘗試這樣做:

script -a logfile.log | ssh hosname 

出現以下錯誤:

Pseudo-terminal will not be allocated because stdin is not a terminal. 

回答

0

這一警告可以忽略不計,但-T選項應該擺脫它。

script -a logfile.log | ssh -T主機名

+0

這並擺脫警告然而,當我嘗試用我的密碼,我無法正常登錄認證。遠程設備似乎因爲某些原因沒有接受輸入,所以我可以按回車並且登錄失敗。我已經多次嘗試過,以確保我不會無意中發出密碼而無濟於事。 –

+0

@MarkScrano您是否考慮過使用RSA密鑰進行身份驗證?否則,我會忽略警告。 – jordanm

+0

不幸的是我正在使用的設備是阿爾卡特路由器,我們在網絡中部署了大約200臺設備,他們都使用TACACS認證,我不相信他們支持RSA密鑰,儘管它會讓我的工作變得更容易:-) –

1
script -a logfile.log -c some-command 

查看script的手冊頁以獲取更多選項。

在你的具體的例子,這可能是你在找什麼:

script -a logfile.log -c ssh -t host run-something-else 
+0

雖然這絕對是正確的做法,但我不認爲它會擺脫他的警告。 – jordanm

+0

@jordanm - 他的警告是通過管道將ssh的stdin連接到屏幕的stdout的結果。警告將不會出現在我建議的命令行中(ssh的stdin將連接到正在運行的tty)。如果最終程序沒有任何輸入,那麼ssh的-T選項仍可以使用(而不是-t)。 – twalberg

+0

很好的解釋,+1 – jordanm

相關問題