#!/bin/bash # inpath -- Проверяет допустимость пути к указанной программе # или ее доступность в каталогах из списка PATH in_path() { cmd=$1 ourpath=$2 result=1 oldIFS=$IFS IFS=":" for directory in $ourpath do if [ -x $directory/$cmd ] ; then echo "Command '$cmd' found in '$directory'" result=0 # Если мы здесь, значит, команда найдена fi done IFS=$oldIFS return $result } checkForInPath() { var=$1 if [ "$var" != "" ] ; then if [ "${var:0:1}" = "/" ] ; then if [ ! -x $var ] ; then return 1 fi elif ! in_path $var "$PATH" ; then return 2 fi fi } if [ $# -ne 1 ] ; then echo "Usage: $0 command" >&2 exit 1 fi checkForInPath "$1" case $? in # 0 ) echo "$1 found in PATH" ;; 1 ) echo "$1 not found or not executable" ;; 2 ) echo "$1 not found in PATH" ;; esac exit 0