#!/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 ] " echo \ 'Options: -a return all results if multiple found -c 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 ] " 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