我想連接到路由器的子模塊,在其上運行一些命令並將輸出保存到文件中。我遇到的問題是子模塊需要用戶名和密碼,如果將所有命令放在單個腳本中,則會在出現提示輸入它們之前發送用戶名/密碼詳細信息。有沒有辦法在這些命令之間設置延遲,或者在相同的SSH會話下批量運行它們?Bash - SSH在它們之間有多個延遲命令
我用EOF方法,並且還具有在一個單獨的文件中的命令(首選):
ssh [email protected] > file.log << EOF
session slot 1 # command to connect to the subslot.
# a delay of about 3 sec would be required before the credentials are sent
slot_username
slot_password
command1
command2
command3
exit
exit
EOF
此外,第二齣口應該帶我出去的路由器,但它僅僅是忽略不計。
我建議使用'expect'。 – Cyrus
謝謝。最後我使用expect創建了一個腳本。我將它與一個bash腳本結合起來提示菜單並獲得用戶輸入。我確信有一個「更聰明」的方式來做到這一點,但我還沒有找到一種方法來獲得用戶輸入的期望和使用的數據作爲變量.. –