0

我需要在命令中运行带有变量的命令。我需要捕获输出并将其保存在一行变量或数组中,这没关系。无论如何,它将被粘贴到 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 "-----------------------------------";
}
4

1 回答 1

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;
}
于 2013-09-27T21:04:07.077 回答