RandomUsefulStuff/shellutils/which

58 lines
1.1 KiB
Plaintext
Raw Normal View History

#!/bin/sh
internal_path="$(echo $PATH | sed -e 's/:/\n/g')"
while true; do
if getopts "ac:h" arg; then
true # do nothing
else
break
fi
case $arg in
a)
all="yes"
shift
;;
c)
internal_path="$(echo $OPTARG | sed -e 's/:/\n/g')"
shift 2
;;
h)
echo "Usage: $0 [-a] [-c <custom path>] <command>"
echo \
'Options:
-a return all results if multiple found
-c <custom path> search in the specified path instead of $PATH
-h display this message'
echo \
"Exit codes:
0 found
1 not found
2 error"
exit 0
;;
?)
echo "Usage: $0 [-a] [-c <custom path>] <command>"
exit 2
;;
esac
done
IFS='
'
for directory in $internal_path; do
if [ -e "$directory/$1" ]; then
echo "$directory/$1"
if [ "$all" = "yes" ]; then
found="yes"
else
exit 0
fi
fi
done
if [ "$found" = "yes" ]; then
exit 0
else
exit 1
fi