首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过ssh到达主机的Perl脚本

问通过ssh到达主机的Perl脚本
EN

Stack Overflow用户
提问于 2016-01-11 22:52:33
回答 1查看 212关注 0票数 2

我试图通过ssh编写一个简单的perl脚本以到达主机。目标是将根文件夹的文件名存储在变量中并打印出来,但是脚本在我介绍主机密码后挂起。能帮把手吗?

代码语言:javascript
复制
system(`ssh root\@10.3.64.136`);
$output = system(`ls`);
system(`exit`);
print $output;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-12 10:56:26

反引号已经调用了system()。做两次并不能达到预期的效果。

修复后,您的尝试仍然无法工作:每个system()都会创建一个单独的shell,因此第二个和第三个命令将在本地系统上执行。要么创建一个命令并将其作为单个参数提供给ssh。

代码语言:javascript
复制
system('ssh root@10.3.64.136 ls')

或

代码语言:javascript
复制
my @ls_output = `ssh root\@10.3.64.136 ls`;
print for @ls_output

或者将命令作为输入提供给ssh。

代码语言:javascript
复制
system('echo ls | ssh root@10.3.64.136')

现在,如果您想将任意的命令序列发送到ssh,这将是多姿多彩的。

正如评论中所说:使用system() (或反引号)来完成这项任务并不是最好的主意。最好使用指定的Perl库。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34732607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档