我想连接到路由器的子模块,在其上运行一些命令并将输出保存到文件中。我遇到的问题是子模块需要用户名和密码,如果将所有命令放在单个脚本中,则会在出现提示输入它们之前发送用户名/密码详细信息。有没有办法在这些命令之间设置延迟,或者在相同的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脚本结合起来提示菜单并获得用户输入。我确信有一个“更聪明”的方式来做到这一点,但我还没有找到一种方法来获得用户输入的期望和使用的数据作为变量.. –