如何用变量执行Perl qx函数

如何使用$opt变量执行Perl的qx函数

之前(工作):

my @df_output = qx (df -k /tmp);

我想使用-k,-g或-H:

my @df_output = qx (df -$opt /tmp);

解决方法

你有什么应该工作,但是:不要使用qx.这是古老而危险的;无论你向它提供什么都通过shell,所以如果/ bin / sh不是你想象的那么很容易受到shell注入或者遇到意外.

使用open()的多arg形式,它完全绕过shell.

open my $fh,'-|','df',"-$opt",'/tmp' or die "Can't open pipe: $!";
my @lines = <$fh>;  # or read in a loop,which is more likely what you want
close $fh or die "Can't close pipe: $!";

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...