学习shell:case_1

#!/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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值