Re: $ARGV[0] breaks the script
- From: mumia.w.18.spam+nospam@xxxxxxxxxxxxx (Mumia W.)
- Date: Fri, 15 Dec 2006 11:12:02 -0600
On 12/14/2006 06:24 AM, Gregory Machin wrote:
hi
the script will not work if I use $ARGV[0] but works 100% if I hard
code the $input variable;
what have i missed ?
#!/usr/bin/perl
# if your prgram has the string "grep" in the name or in the path
# this program won't work.
use strict;
use warnings;
my $line;
my $input;
$input=$ARGV[0]; #$input="httpd";
chomp $input;
open PROS, "ps -ef|grep $input |";
while ($line = <PROS>){
unless ($line =~ m/grep/){
print "$input is running\n";
exit;
}
}
print "$input isn't running\n";
exec "/etc/init.d/$input restart &";
Many thanks
Perhaps it would be easier to keep the grepping outside of the ps command:
my $input = $ARGV[0];
my @cmds = grep /\Q$input\E/, qx{ ps -eo '%c' };
if (@cmds < 1) {
... do something ...
}
.
- References:
- $ARGV[0] breaks the script
- From: Gregory Machin
- $ARGV[0] breaks the script
- Prev by Date: Re: What I thought was a simple comparison...
- Next by Date: Re: reg exp continued need pulled from reference
- Previous by thread: Re: $ARGV[0] breaks the script
- Next by thread: Yet another parsing question
- Index(es):
Relevant Pages
|
|