我有以下bash脚本
#!/bin/bash
ssh -o "StrictHostKeyChecking no" ubuntu@$1
cd /home/ubuntu
wget google.com
当我运行它时,./test.sh
我ssh进入远程服务器但wget
命令没有运行,除非我按 ctrl + d 然后按ssh会话退出,index.html
文件保存到/home/ubuntu
如何更改此bash脚本以便我可以将index.html
文件保存在远程服务器上?
答案 0 :(得分:4)
只需在ssh
的命令行中指定要执行的命令:
ssh -o "StrictHostKeyChecking no" ubuntu@$1 'cd /home/ubuntu; wget google.com'
答案 1 :(得分:3)
你的脚本做了什么:
您想要的是在远程主机上创建脚本并执行它:
run.sh
#!/bin/sh
cd /home/ubuntu
wget google.com
在本地主机的脚本中:
ssh -o "StrictHostKeyChecking no" ubuntu@$1 run.sh
答案 2 :(得分:2)
你有bash的概念非常错误。 Bash不是一种创建为您打字的宏的方法。 Bash是一种脚本语言,它将在本地计算机上执行一系列命令。这意味着它将运行连接到远程主机的ssh命令。一旦ssh脚本执行完毕,bash将执行cd然后执行wget。
您要做的是将命令传递给远程ssh服务器。
#!/bin/bash
ssh -o "StrictHostKeyChecking no" ubuntu@$1 "cd /home/ubuntu; wget google.com"