3

当我将参数传递给这种方式时,shell_qoute使用String::ShellQuote是否有意义system

#!/usr/bin/env perl
use warnings;
use 5.012;
use String::ShellQuote qw(shell_quote);

my $file = shift;
my $argument = shift;

$file = shell_quote $file;
$argument = shell_quote $argument;

system( 'some_command', '--verbose', '-o', $file, $argument );
4

1 回答 1

4

不,它没有。如果您调用system

system LIST

然后它不会调用shell。Shell 元字符没有特殊含义。所以你不能引用你的论点,否则它会给出错误的结果。

system如果被调用为需要引用

system SCALAR

其中 SCALAR 可能类似于ls file name with spaces,参数 tols是包含空格的单个文件名。

于 2012-05-15T07:48:59.583 回答