通常在一个shell脚本,你可以写,如shell脚本来完成SSH之后进一步命令
command1
command2
command3
命令,他们将被一个接一个执行。
我想写一个Unix shell脚本SSH到服务器上,然后执行该服务器上的命令。 例如
ssh [email protected]
ls
我尝试这样做如上所示但LS不显示输出。我究竟做错了什么?
通常在一个shell脚本,你可以写,如shell脚本来完成SSH之后进一步命令
command1
command2
command3
命令,他们将被一个接一个执行。
我想写一个Unix shell脚本SSH到服务器上,然后执行该服务器上的命令。 例如
ssh [email protected]
ls
我尝试这样做如上所示但LS不显示输出。我究竟做错了什么?
您可以在命令行或stdin中输入ssh命令。如果你只有一个命令来执行,做:
ssh [email protected] ls
如果你有多个命令,使用定界符在通过stdin传递它们:
ssh [email protected] <<END
command1
command2
command3
END
使用密码的ssh作为this guide提及。
然后你的脚本将包含:
ssh [email protected] command1
ssh [email protected] command2
ssh [email protected] command3
虽然其他的答案我的问题还是非常好的,我结束了使用一个小的修改后的版本。以为我会与论坛分享给任何感兴趣的人。
ssh -t [email protected] "
command1
command2
command3
bash -l"
优点:它不会将您注销!
非常感谢anishsane和约翰库格尔曼
请参阅我对John Kugelman的回答的评论。在这里,'bash -l'仍然从ssh继承它的标准输入,但现在'ssh'使用你的本地终端进行标准输入,而不是这里的文档。 – chepner 2014-09-30 15:56:31
完美。正是我在找的东西。谢谢。 – Kian 2014-09-30 14:22:40
唯一的问题是它会自动将我注销。有没有办法让我保持登录状态? – Kian 2014-09-30 14:33:31
^^添加一行''之前;-) END'的 – anishsane 2014-09-30 14:42:37