Это основано на ответе choroba , но использует только функции Bash (, написанные для GNU Bash 4.3.11 ). Он возвращает успех, если какие-либо совпадения найдены, в противном случае — отказ.
#!/bin/bash
shopt -s nullglob
s="${1:?}" # Error if argument is missing or null.
exit=1 # Return failure unless changed.
IFS=:
for p in $PATH; do
for f in "$p/"*"$s"*; do
if [[ -f $f ]]; then
echo "$f"
exit=0 # Return success since match found.
fi
done
done
exit $exit