假设我有以下的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
假设我有以下的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 HOSTNAME
cat foo.sh -
?这会阻塞程序,等待用户按下 ctrl-D
。 - glenn jackmancat
е‘Ҫд»ӨжІЎжңүеҸӮж•°ж—¶д»Һж ҮеҮҶиҫ“е…ҘиҜ»еҸ–гҖӮдҪҶжҳҜдҪ ж №жң¬дёҚйңҖиҰҒcat
пјҢд№ҹдёҚйңҖиҰҒfoo.sh
ж–Ү件гҖӮеҸӘйңҖиҝҗиЎҢsh
еҚіеҸҜгҖӮ - Ideliccat foo.sh | ssh -T root@remote
就可以实现此操作。 -T
选项会抑制警告,因为您正在从文件中进行输入。
foo.sh
? - CodyBugstein