我试图通过ssh编写一个简单的perl脚本以到达主机。目标是将根文件夹的文件名存储在变量中并打印出来,但是脚本在我介绍主机密码后挂起。能帮把手吗?
system(`ssh root\@10.3.64.136`);
$output = system(`ls`);
system(`exit`);
print $output;发布于 2016-01-12 10:56:26
反引号已经调用了system()。做两次并不能达到预期的效果。
修复后,您的尝试仍然无法工作:每个system()都会创建一个单独的shell,因此第二个和第三个命令将在本地系统上执行。要么创建一个命令并将其作为单个参数提供给ssh。
system('ssh root@10.3.64.136 ls')或
my @ls_output = `ssh root\@10.3.64.136 ls`;
print for @ls_output或者将命令作为输入提供给ssh。
system('echo ls | ssh root@10.3.64.136')现在,如果您想将任意的命令序列发送到ssh,这将是多姿多彩的。
正如评论中所说:使用system() (或反引号)来完成这项任务并不是最好的主意。最好使用指定的Perl库。
https://stackoverflow.com/questions/34732607
复制相似问题