Add a -s' flag for silent' processing. Make the script return 0 for

success and 1 for failure.  Describe the options in manpage.
This commit is contained in:
Satoshi Asami 1995-01-28 17:35:56 +00:00
parent ebf5d6bd28
commit 35bff0b976
2 changed files with 28 additions and 5 deletions

View File

@ -27,7 +27,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
.\" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" $Id$
.\" $Id: which.1,v 1.1 1995/01/26 21:49:48 jkh Exp $
.Dd January 26, 1995
.Dt WHICH 1
.Os FreeBSD
@ -36,12 +36,22 @@
.Nd "locate a program file in the user's path"
.Sh SYNOPSIS
.Nm which
.Op Fl as
.Op Ar command
.Ar ...
.Sh DESCRIPTION
.Nm Which
takes a list of command names and searches the path for each executable
file that would be run had these commands actually been invoked.
.Pp
The following options are available:
.Bl -tag -width indent
.It Fl a
List all instances of executables found (instead of just the first one
of each).
.It Fl s
No output, just return 0 if any of the executables are found, or 1 if
none are found.
.Sh HISTORY
The
.Nm

View File

@ -31,22 +31,35 @@
#
# [whew!]
#
# $Id: which.sh,v 1.1.1.1 1995/01/25 19:18:33 jkh Exp $
# $Id: which.pl,v 1.1 1995/01/26 21:49:54 jkh Exp $
$all = 0;
$silent = 0;
$found = 0;
@path = split(/:/, $ENV{'PATH'});
if ($ARGV[0] eq "-a") {
$all = 1; shift @ARGV;
} elsif ($ARGV[0] eq "-s") {
$silent = 1; shift @ARGV;
} elsif ($ARGV[0] =~ /^-(h|help|\?)$/) {
die "usage:\n\twhich [-a] program ...\n";
die "usage:\n\twhich [-a] [-s] program ...\n";
}
foreach $prog (@ARGV) {
foreach $e (@path) {
if (-x "$e/$prog") {
print "$e/$prog\n";
last unless $all;
if (! $silent) {
print "$e/$prog\n";
}
$found = 1;
last unless $all;
}
}
}
if ($found) {
exit 0;
} else {
exit 1;
}