in reply to Wicked Cool Shell Scripts implemented in Perl
#!/usr/bin/perl -w use strict; # inpath - verify that a specified program is either valid as-is, # or can be found in the PATH directory list. sub in_path { my ($cmd, $path) = @_; my $found = 0; foreach my $directory (split /:/, $path) { return "exe" if -x "$directory/$cmd"; $found = 1 if -e "$directory/$cmd"; } return $found ? "plain" : "not found"; } sub check_for_command_in_path { my ($command) = @_; if ($command =~ m{^/}) { return 'exe' if -x $command; return -e $command ? 'plain' : 'not found'; } else { in_path($command, $ENV{PATH}); } } die "Usage: $0 command\n" if @ARGV != 1; my $ret = check_for_command_in_path($ARGV[0]); print "Executable $ARGV[0] found in PATH\n" if $ret eq "exe"; print "$ARGV[0] found but not executable" if $ret eq "plain"; print "$ARGV[0] not found in PATH\n" if $ret eq "not found";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: 001-inpath verify if command is in PATH
by calin (Deacon) on Mar 27, 2006 at 10:51 UTC | |
by szabgab (Priest) on Mar 27, 2006 at 16:26 UTC | |
|
Re: 001-inpath verify if command is in PATH
by davidrw (Prior) on Mar 27, 2006 at 14:09 UTC |