Shell脚本执行SSH后跟进一步的命令

时间:2014-09-30 14:16:17

标签: linux bash shell ssh

通常在shell脚本中,您可以编写

等命令
command1
command2
command3

他们会一个接一个地执行。

我想将一个Unix shell脚本写入SSH到服务器上,然后在该服务器上执行命令。 例如

ssh user@server.com
ls

我尝试如上所示执行此操作,但ls不显示输出。我做错了什么?

3 个答案:

答案 0 :(得分:8)

您可以在命令行或stdin上为ssh提供命令。如果只有一个命令要执行,请执行:

ssh user@server.com ls

如果您有多个命令,请使用heredoc语法通过stdin传递它们:

ssh user@server.com <<END
command1
command2
command3
END

答案 1 :(得分:2)

虽然我的问题的其他答案都很棒,但我最终使用了一个小修改版本。我想我会在论坛上与任何感兴趣的人分享。

ssh -t username@server.com "
command1
command2
command3
bash -l"

优点:它不会让你退出!

非常感谢anishsane和John Kugelman

答案 2 :(得分:0)

使用this guide中提到的无密码SSH。

然后你的脚本将包含:

ssh user@server.com command1
ssh user@server.com command2
ssh user@server.com command3