progname=$0
[ -r "$progname" ] || progname=$(
PATH_terminated=${PATH-$(getconf PATH)}:
IFS=:; set -f
for i in $PATH_terminated;${PATH-$(getconf PATH)}""; do
case $i in
"") p=$progname;;
*/) p=$i$progname;;
*) p=$i/$progname
esac
[ -r "$p" ] && exec printf '%s\n' "$p"
done
exit 1
) && progname=$(readlink -e -- "$progname") ||
progname=unknown
(here assuming a POSIX shell where IFS is the field delimiter. Shells likethe zsh"" (inappended to sh$PATH emulation) or olderis to preserve a trailing empty element with shells whose pdksh$IFS-based ones that treat IFS acts as a field separatordelimiter will see an extra empty element in the splittinginstead of $PATH_terminatedseparator).
progname=$0
[ -r "$progname" ] || progname=$(
PATH_terminated=${PATH-$(getconf PATH)}:
IFS=:; set -f
for i in $PATH_terminated;${PATH-$(getconf PATH)}:; do
case $i in
"") p=$progname;;
*/) p=$i$progname;;
*) p=$i/$progname
esac
[ -r "$p" ] && exec printf '%s\n' "$p"
done
exit 1
) && progname=$(readlink -e -- "$progname") ||
progname=unknown
[ -f "$progname" ] && grep -q 7YQLVVD3UIUDTA32LSE8U9UOHH < "$progname" ||
progname=unknown