【发布时间】:2022-01-27 07:22:11
【问题描述】:
我正在尝试运行一些 strace 命令,如下所示:
my @cmd = shell_quote(@ARGV);
strace -f -o trace.log -e trace=file @cmd
我想查看 trace.log 并在它运行时对其进行解析,并将@cmd 标准输出打印到屏幕上。
知道我应该怎么做...帮助:)
sub shell_unquote {
my @strings = (@_);
my $arg;
for my $arg (@strings) {
if(not defined $arg) {
$arg = "";
}
$arg =~ s/'\n'/\n/g; # filenames with '\n' is quoted using \'
$arg =~ s/\\([\002-\011\013-\032])/$1/g;
$arg =~ s/\\([\#\?\`\(\)\{\}\*\>\<\~\|\; \"\!\$\&\'])/$1/g;
$arg =~ s/\\\\/\\/g;
}
return wantarray ? @strings : "@strings";
}
【问题讨论】: