通过SSH执行存储在文件中的Bash脚本
假设我有以下Bash脚本存储在文件foo.sh
:
#!/bin/bash
echo foo
无需scp
文件,我怎么能执行存储在远程机器上foo.sh
的脚本?
我尝试了以下(有一些变化),但没有成功:
$ ssh root@remote eval `cat foo.sh`
eval `cat foo.sh`
似乎扩展到eval #!/bin/bash echo foo
这里
ssh root@MachineB 'bash -s' < local_script.sh
我从该线程得到它:如何使用SSH在远程计算机上运行shell脚本?
在接受的答案中,我看到:
我想把它作为一个班轮。 你能做一个小代码的例子吗?
应该是这样的:
ssh root@MachineB 'bash -s -- uno' < local_script.sh
或更好的,用一个在这里的文件
ssh root@MachineB 'bash -s -- uno' <<EOF
> date
> echo $1
> EOF
jue sep 18 13:01:25 CEST 2014
uno
cat foo.sh | ssh -T root@remote
cat foo.sh | ssh -T root@remote
将会诀窍。 -T
选项禁止您以其他方式获得的警告,因为您是从文件管道输入的。