通过 SSH 执行存储在文件中的 Bash 脚本
假设我在文件 foo.sh
中存储了以下 Bash 脚本:
#!/bin/bash
echo foo
无需 scp
文件,我如何执行存储在 foo.sh 中的脚本
在远程机器上?
我尝试了以下方法(有一些变化)但没有成功:
$ ssh root@remote eval `cat foo.sh`
eval `cat foo.sh`
似乎扩展为eval #!/bin/bash echo foo
这里
Say I have the following Bash script stored in the file foo.sh
:
#!/bin/bash
echo foo
Without having to scp
the file, how could I execute the script stored in foo.sh
on a remote machine?
I have tried the following (with a few variations) to no success:
$ ssh root@remote eval `cat foo.sh`
eval `cat foo.sh`
seems to expand to eval #!/bin/bash echo foo
here
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我从该线程中得到它: 如何使用 SSH 在远程计算机上运行 shell 脚本?
I got it from that thread: How to use SSH to run a shell script on a remote machine?
在接受的答案中我看到:
应该是这样:
或者更好的是,带有一份此处的文档
In accepted answer I see:
That should be it:
or better, with a here-in document
猫foo.sh | ssh -T root@remote 就可以了。
-T
选项会抑制您因从文件通过管道传输输入而收到的警告。cat foo.sh | ssh -T root@remote
will to the trick. The-T
option suppresses a warning you would otherwise get because you're piping input from a file.不过,现在经过测试:小心处理! :)
(删除了破折号(参见评论)和几乎所有内容:))
Now tested, though: handle with care! :)
(removed dash (see comments) and nearly everything :) )
您可以使用 runoverssh:
-s
远程运行本地脚本You can use runoverssh:
-s
runs a local script remotely