我需要在命令中运行带变量的命令。我需要捕获输出并将其保存在一行varible或数组中,这没关系。无论如何它将被粘贴到Tk的文本框中。
我试过了:
my @array = '$variable_with_command';
我无法真正使用:
my $variable = 'unixcommand $variableinside';
因为里面的变量,我已经看到了其他stackoverflow帖子的建议。
适用于:
my $readvariable = 'ls -a';
因为里面没有变量,除非有办法包含变量并且有$ readvariable捕获输出?提前致谢。
这是我的代码(打印零):
sub runBatch {
my $directory = "/directpath/directoryuser/sasmodules/";
my $command = 'sasq ' . $directory . $selectBatch;
my @batch = system($command);
print "This is the output\n";
print "-----------------------------------";
print @batch;
print "-----------------------------------";
}
答案 0 :(得分:3)
这是答案,以防止任何人根据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;
}