我正在尝试在我的 perl 脚本中执行此操作
my $command = `ps -p $pidnumber | wc -l`;
但是当我运行脚本时,它会显示如下内容:
sh:-c:第 1 行:意外标记 `|' 附近的语法错误
sh:-c:第 1 行:` | 厕所-l'
哪个可能是错误?
我同意其他答案,即管道之前的额外换行很可能是原因
但是该命令并不真正需要管道!
强制引用的命令将其值作为列表返回,然后获取列表的长度,你就得到了 wc -l "line count"
my $command_str = "ps -p $pidnumber";
my $linecount = () = qx!$command_str!;
是否$pidnumber
以新行结束?见chomp
功能。
在执行命令之前尝试打印,因为$pidnumber
可能有一些奇怪的东西:
my $command_str = "ps -p $pidnumber | wc -l";
print $command_str, "\n";
my $command = qx!$command_str!;
正如@mob 所说,如果换行符出现在打印句子中,请使用 chomp 。