#!/bin/bash
in_path() {
cmd=$1 ourpath=$2 result=1
# $加对应的数字表示对应的参数
oldIFS=$IFS IFS=":"
# 变量赋值必须和=连接在一起,和别的编程语言不一样,这里=左右不能留空格
for directory in $ourpath
# 这里将分隔符自动替换为:,等于将ourpath分割了
do
if [ -x $directory/$cmd ]; then
# if文的[] 的语句内容左右和括号之间必须留空白
# -x 测试目录是否存在且可运行
result=0
# return是函数的退出状态,return只能返回整数
fi
done
IFS=$oldIFS
return $result
}
chechForCmdInPath(){
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
# >&2:> 表示重定向 & 表示引用 2 表示标准错误输出
exit 1
# 退出 exit 1 非正常退出
fi
chechForCmdInPath "$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
shell编程1 - 测试命令是否存在
最新推荐文章于 2024-03-30 21:55:20 发布