第一天
[root@gby sh]# cat 01-在PATH中查找程序.sh
#!/bin/bash
# inpath ---验证指定程序是否有效,或者能否在PATH目录列表中找到。
in_path()
{
# 尝试在环境变量PATH中找到给定的命令。如果找到,返回0;
# 如果没有找到,返回1。注意,该函数会临时修改IFS(内部字段分隔符)
# 不过在函数执行完毕时,会将其恢复。
cmd=$1 ourpath=$2 result=1
oldIFS=$IFS IFS=":"
for directory in $ourpath
do
if [ -x $directory/$cmd ] ; then
result=0
fi
done
IFS=$oldIFS
return $result
}
checkForCmdInPath()
{
var=$1
if [ "$var" != "" ] ; then
if [ "${var:0:1}" = "/" ] ; then
#${var:0:1} 可以用${var%${var#?}}代替。${var#?}输出除了第一个字符的其余内容,%${var#?}输出第一个字符内容
#也可以用$(echo $var |cut -c1)
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 for not executable" ;;
2 ) echo "$1 not found in PATH" ;;
esac
exit 0
[root@gby sh]# ./01-在PATH中查找程序.sh echo
echo found in PATH
[root@gby sh]# ./01-在PATH中查找程序.sh yaya
yaya not found in PATH
结束之有话想说
既然看完了,如果有帮助到你的话,点个关注,点个赞,评个论,不过分吧。👊