我寫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.
我寫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.
這一警告可以忽略不計,但-T選項應該擺脫它。
script -a logfile.log | ssh -T主機名
script -a logfile.log -c some-command
查看script
的手冊頁以獲取更多選項。
在你的具體的例子,這可能是你在找什麼:
script -a logfile.log -c ssh -t host run-something-else
這並擺脫警告然而,當我嘗試用我的密碼,我無法正常登錄認證。遠程設備似乎因爲某些原因沒有接受輸入,所以我可以按回車並且登錄失敗。我已經多次嘗試過,以確保我不會無意中發出密碼而無濟於事。 –
@MarkScrano您是否考慮過使用RSA密鑰進行身份驗證?否則,我會忽略警告。 – jordanm
不幸的是我正在使用的設備是阿爾卡特路由器,我們在網絡中部署了大約200臺設備,他們都使用TACACS認證,我不相信他們支持RSA密鑰,儘管它會讓我的工作變得更容易:-) –