在单引号和双引号内引用{print $ NF}?

dav*_*veg -2 perl tcsh

试图弄清楚如何用双引号内的单引号单引号.这就是我想要做的......

从perl开始,我想运行一个系统命令...... - 将ssh写入远程机器 - 执行'uptime'然后从中取出最后一个字段(平均负载持续15分钟).

\#\!/usr/bin/env perl   
my $cmd = "ssh othermachine 'uptime | awk '{print $NF}'' > local_file.dat";   
system($cmd);
Run Code Online (Sandbox Code Playgroud)

当然这不会运行......

% ./try.pl

Missing }.
%
Run Code Online (Sandbox Code Playgroud)

失踪 "}" ???看起来它将$ NF}解释为var?我试图逃避{}字符而没有运气.我试图逃避$,没有运气.我在}之前尝试了一个空格,没有运气但是不同的msg(未定义的变量).

c-shell BTW并提前感谢!

ike*_*ami 5

你希望以下是ssh第二个参数:

uptime | awk '{print $NF}'
Run Code Online (Sandbox Code Playgroud)

为此,您只需在其周围放置单引号即可.但这不起作用,因为它包含单引号.


您想构建一个包含的字符串$NF,但是您按如下方式执行:

"...$NF..."
Run Code Online (Sandbox Code Playgroud)

这将把(不存在的)Perl变量的值$NF放在字符串中.


一步一步做.