繁体   English   中英

我可以通过 ssh 将局部变量回显到远程文件中吗?

[英]Can I echo local variable via ssh into remote file?

我尝试在文件末尾写入变量,但将其写入本地服务器的 STDOUT 一些代码:

$num = <STDIN>
my $cmd = "echo $dep_keys{$num} >> /root/1";
#$ssh->system({stdin_data =>$dep_keys{$num} },"echo >> /root/1");
#$ssh->error die "Couldn't establish SSH connection: ". $ssh->error;
#$ssh->system("echo $dep_keys{$num} >> /root/1");
$ssh->system($cmd);

我希望该文件将在文件末尾包含新行。

use String::ShellQuote qw( shell_quote );

defined( my $num = <STDIN> )
   or die("Invalid input");

chomp($num);

defined($dep_keys{$num})
   or die("Invalid input");

my $cmd = shell_quote('printf', '%s\n', $dep_keys{$num}) . ' >>/root/1';
$ssh->system($cmd);

修复:

  • 检查 EOF 和其他无效输入。
  • $num中删除尾随换行符(如果有)。
  • 将文本从 hash 元素正确转换为 shell 文字。
  • 避免echo显,因为echo显使 output 某些字符串成为不可能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM