Как запустить команду с sudo в Perl - PullRequest
0 голосов
/ 29 октября 2019

У меня есть код ниже и команда aws работает только с sudo

   #!/usr/bin/perl
    use strict;
    use warnings;

    my $ogg_file = '20191220-104756_4301_1571528872-480639.ogg';


    unless (system  ('aws', 's3','cp', $ogg_file, "s3://recordings")==0) {
            print STDERR "Failed to upload   '$ogg_file': $!\n";
           next;
    }

Я попытался запустить с sudo, но он не работает. Может кто-нибудь предложить мне лучший способ

Ответы [ 2 ]

1 голос
/ 29 октября 2019

Попробуйте изменить

system  ('aws', 's3','cp', $ogg_file, "s3://recordings")

... на одно из следующих значений:

system(qq(sudo aws s3 cp "$ogg_file" "s3://recordings"))
system("sudo aws s3 cp '$ogg_file' s3://recordings")
0 голосов
/ 30 октября 2019

Вы также можете сделать следующее для лучшей читаемости

my $cmd = 'sudo aws s3 ';
$cmd .= 'cp $ogg_file ';
$cmd .= 's3://recordings';
system($cmd);
...