in reply to Re: Shell script to Perl
in thread Shell script to Perl

#!/usr/bin/perl # #my @MEDIA; #for (qx<sudo /usr/openv/netbackup/bin/admincmd/bpimagelist -A -media +-hoursago 24>){ # s/\|/ /; # my ($Image) = split; # for (qx<sudo /usr/openv/netbackup/bin/admincmd/nbemmcmd -listme +dia -mediaid $Image>){ # next unless m/Media ID|Data Expiration/i; # push @MEDIA, $_; # } # } # # if(@MEDIA){ # open(FF, "|/usr/bin/mailx -s 'Daily' ishonbackup.na +r\@capgemini.com") or die $!; # for (@MEDIA){ # print FF $_ . "\n"; # } # close FF; # }
I am using the above script but its not giving me any output. Can someone please help me out.

Replies are listed 'Best First'.
Re^3: Shell script to Perl
by GotToBTru (Prior) on Mar 02, 2016 at 13:02 UTC
    #!/usr/bin/perl use strict; use warnings; my @MEDIA; for (qx<sudo /usr/openv/netbackup/bin/admincmd/bpimagelist -A -media - +hoursago 24>) { s/\|/ /; my ($Image) = split; for (qx<sudo /usr/openv/netbackup/bin/admincmd/nbemmcmd -listmedia - +mediaid $Image>){ next unless m/Media ID|Data Expiration/i; push @MEDIA, $_; } } if (@MEDIA){ open(FF, "|/usr/bin/mailx -s 'Daily' ishonbackup.nar\@capgemini.com" +) or die $!; for (@MEDIA){ print FF $_ . "\n"; } close FF; }

    What output do you expect from bpimagelist? You might want to run this in the debugger or add print statements to verify it.

    s/\|/ /; ($image) = split; could be more easily written ($image) = split /\|/; although in either case I don't think it returns the value you want. split returns a list, so if you want one of the values you need to use a subscript.

    But God demonstrates His own love toward us, in that while we were yet sinners, Christ died for us. Romans 5:8 (NASB)

Re^3: Shell script to Perl
by poj (Abbot) on Mar 02, 2016 at 08:17 UTC