通常在shell脚本中,您可以编写
等命令command1
command2
command3
他们会一个接一个地执行。
我想将一个Unix shell脚本写入SSH到服务器上,然后在该服务器上执行命令。 例如
ssh user@server.com
ls
我尝试如上所示执行此操作,但ls不显示输出。我做错了什么?
答案 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