百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>服务器> shell编程实战之施行多个名目下的php程序-linux运维
分享文章到:

shell编程实战之施行多个名目下的php程序-linux运维

发布时间:10/01 来源:未知 浏览: 关键词:
去年本人参与的一个项目中,有这样的一个需求:在多个名目下都有php足本,需要去施行这行名目下的所有php足本。 去年本人参与的一个项目中,有这样的一个需求:在多个名目下都有php足本,需要去施行这行名目下的所有php足本。

拿个这个需求,我的考虑是,将名目作为参数通报给shell足本而不是写死在程序中。这里需要增补个见识点:shell足本程序的预定义变量

/path/to/scriptname  opt1  opt2  opt3  opt4 
   $0            $1    $2    $3    $4

$0表示足本文件名,$1表示首先个参数,顺次类推。除此以外,$#表示参数的个数,$*表示所有的参数。

按照我的设法就是:

shell足本 名目名1  名目名2 ……

想拿到所有的名目名就非常的简略了,施行运用$*即可。但是,关于程序的强健性,我们确定需要对名目名就校验,检查可否输入了名目名以及该名目可否存在。

# 检查可否输入了参数
if (( $# < 1));then 
    echo 'please input some dirs'
    echo 'Usage ${0} dir1 dir2 ...'
    exit 1
fi

# 检查目录
for dir in $*
do
    if [ ! -d $dir ];then
        echo "$dir is not a dir"
        exit 2
    fi
done

第一,我们检查会员可否输入了参数,通过预定义变量$#来推断,$#要是小于1则表示没有输入参数。然后,进行名目的检测,查看输入的参数可否是一个名目。这里用[ ! -d $dir ] 来检测 。

验证性的代码完成后,接下来就是要施行名目下的php足本了。其实主要的一点就是猎取名目下的php文件名。个别的我们都以.php结尾的文件名作为php的足本名。所以,这里我们只有施行以.php为后缀名的文件就行了。

# 施行名目下的php足本
for dir in $*
do
    files=$(find $dir -name '*.php')
    for file in $files
    do
        $PHPBIN $file >/dev/null 2>&1 
    done
done

这里我们运用了两层轮回,外轮回遍历出所有名目,内层轮回遍历名目下的所有php文件。

下面,贴出完备的shell足本

#!/bin/bash
# 施行多个名目下的php足本程序
PHPBIN=/usr/local/php/bin/php

if (( $# < 1));then 
    echo 'please input some dirs'
    echo 'Usage ${0} dir1 dir2 ...'
    exit 1
fi

# 检查目录
for dir in $*
do
    if [ ! -d $dir ];then
        echo "$dir is not a dir"
        exit 2
    fi
done

# 执行目录下的php脚本
for dir in $*
do
    files=$(find $dir -name '*.php')
    for file in $files
    do
        $PHPBIN $file >/dev/null 2>&1 
    done
done

最后,我们来总结下该足本用到了哪些见识:

  • 前提推断以及轮回施行

  • [ -d 文件名 ]来检测该文件可否为一个名目

  • find下令来查寻名目下以.php为后缀的文件

  • shell编程的预定义变量

以上就是shell编程实战之施行多个名目下的php程序的细致内容,更多请关注 百分百源码网 其它相干文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有153人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板