#!/bin/sh
in_path()
{
cmd=$1 path=$2 retval=1
oldIFS=$IFS IFS=":" #IFS分隔符的使用,使用:作为分隔符
for directory in $path
do
if [ -x $directory/$cmd ] ; then # -x执行,如果成功返回0
retval=0
fi
done
}
checkForCmdInPath()
{
var=$1
if [ "$var" != "" ] ; then
if [ "${var%${var#?}}" = "/" ] ; then # ${var#?}第一个字符, ${var%pattern}produces a substring with everything left over once the specified pattern is applied to the inner call. In this case, what's left is the first character of the string.
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
checkForCmdInPath "$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