簡體   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