если я использую мультипликативные суффиксы в systemd, он выдает ошибку - "failed to parse resource value"

#!/usr/bin/env perl
use strict;
use warnings;
use Getopt::Long qw(GetOptions);

GetOptions( 'dir=s' => \my $Flag_Directory ) or exit 1;

die "Usage: $0 [--dir=d] inputfile outputfile\n" if @ARGV < 2;

$Flag_Directory = '/etc/' if !defined $Flag_Directory;
$Flag_Directory = quotemeta($Flag_Directory);

my $output_file = pop @ARGV;
open my $outfh, '>', $output_file
  or die "$0: could not write '$output_file': $!\n";

while (readline) {
    chomp;
    print "input: '$_'\n";
    my $filename = quotemeta($_);
    print $outfh qx(find $Flag_Directory -type f -name $filename -print);
}

Хотя в Perl было бы более идиоматично использовать вместо обстрела File :: Find или File :: Find :: Rule .

2
27.02.2017, 14:21
1 ответ

Возможность использования суффиксов, таких как K и `M, была введена в systemd 228 , Debian Jessie предоставляет systemd 215 и, следовательно, не может использовать эту функцию. В качестве обходного пути вы можете вручную выполнить умножение и вместо этого указать байты.

0
27.01.2020, 22:47

Теги

Похожие вопросы