读《Shell 脚本实践》——inpath.sh

本文记录了阅读《Shell脚本实践》中关于inpath.sh的内容,重点介绍了如何使用${var:m:n}进行字符串变量拆分,以及等价的POSIX规范做法${var%${var#?}},该方法用于删除字符串的第一个匹配模式。
摘要由CSDN通过智能技术生成

最近正在阅读《Shell脚本实践》一书,这一系列文章是对书中内容的学习与整理。

inpath.sh

#! /bin/bash
# inpath -- 验证指定程序是否有效,如果参数以绝对路径的形式给出则检查改路径是否存在且可执行,如果参数没有以 / 开头,则检查该命令是否位于$PATH记录的目录下且可执行

in_path()
{
        cmd=$1
        ourpath=$2
        result=1
        #记录当前字段分隔符,并修改为':'
        oldIFS=$IFS
        IFS=":"
        #遍历参数2指定的目录列表
        for directory in $ourpath
        do
                if [ -x $directory/$cmd ] ; then
                        #如果该命令存在且可执行,则in_path成功退出
                        result=0
                fi
        done
        #恢复w字段分隔符为原始值
        IFS=$oldIFS
        return $result
}

checkForCmdInPath()
{
        var=$1
        if [ "$var" != "" ] ; then
                #下面使用了字符串切分语法
                if [ "${var:0:1}" = "/" ] ; then
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值