用Perl读取unix命令输出
我需要运行一个包含变量的命令。我需要捕获输出并将其保存在一行变量或数组中,这无关紧要。它将被粘贴到Tk中的文本框中 我试过:用Perl读取unix命令输出,perl,tcl,tk,perltk,Perl,Tcl,Tk,Perltk,我需要运行一个包含变量的命令。我需要捕获输出并将其保存在一行变量或数组中,这无关紧要。它将被粘贴到Tk中的文本框中 我试过: my @array = '$variable_with_command'; 我真的不能用: my $variable = 'unixcommand $variableinside'; 由于内部的变量,我认为这是其他stackoverflow帖子的一个建议 它适用于: my $readvariable = 'ls -a'; 因为里面没有变量,除非有办法包含变量并让
my @array = '$variable_with_command';
我真的不能用:
my $variable = 'unixcommand $variableinside';
由于内部的变量,我认为这是其他stackoverflow帖子的一个建议
它适用于:
my $readvariable = 'ls -a';
因为里面没有变量,除非有办法包含变量并让$readvariable捕获输出?提前谢谢
这是我的代码(打印为零):
这是一个答案,以防它帮助任何人基于qx评论
sub runBatch {
my @batch = qx(sasq $director);
print "This is the output\n";
print "-----------------------------------\n";
print @batch;
print "-----------------------------------\n";
}
这实际上非常有效——使用反引号:`
sub runBatch {
my $directory = "/path/directory/sasmodules/" . $selectBatch;
my $command = `sasq $directory`;
#my @batch = command
print "This is the output\n";
print "-----------------------------------\n";
print $command;
print "-----------------------------------\n";
print $selectBatch;
}
这是一个答案,以防它帮助任何人基于qx评论
sub runBatch {
my @batch = qx(sasq $director);
print "This is the output\n";
print "-----------------------------------\n";
print @batch;
print "-----------------------------------\n";
}
这实际上非常有效——使用反引号:`
sub runBatch {
my $directory = "/path/directory/sasmodules/" . $selectBatch;
my $command = `sasq $directory`;
#my @batch = command
print "This is the output\n";
print "-----------------------------------\n";
print $command;
print "-----------------------------------\n";
print $selectBatch;
}
这与命令中的变量没有多大关系。这与命令没有做你认为它做的事情有关。要捕获外部命令的输出,您需要使用backticks、
qx()
运算符或。谢谢,如果没有变量,我不会有问题。我相信使用反引号,无论是否正确,都能解决我的问题。我确信Perl似乎有很多解决方案,这与命令中的变量没有多大关系。这与命令没有做你认为它做的事情有关。要捕获外部命令的输出,您需要使用backticks、qx()
运算符或。谢谢,如果没有变量,我不会有问题。我相信使用反引号,无论是否正确,都能解决我的问题。我相信Perl似乎有很多解决方案。