如何实现执行多目录下的php脚本,方法是什么
Admin 2022-06-22 群英技术资讯 892 次浏览
今天这篇我们来学习和了解“如何实现执行多目录下的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编程的预定义变量
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
linux创建文件夹命令是mkdir,语法为【mkdir (选项)(参数)】,其中Z为设置安全上下文,当使用SELinux时有效,version显示版本信息。
vim中的保存退出命令是wq。具体方法:首先按i键进入插入模式;然后编辑文件;接着按esc键进入命令行模式;最后输入【:wq】即可保存文件并退出。
进程的概念进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放。可
在linux中,打开端口的命令是“firewall-cmd --zone=public --add-port=端口/通讯协议 --permanent”;该命令中的“--zone”表示作用域,“--permanent”表示打开端口之后用永久生效,利用该命令开启指定端口后需要重启防火墙使其生效。
Li对于电脑新手来说,可能并不清楚默认网关是什么,对默认网关的简单理解就是路由器的IP地址,要有正确的网关配置才能保证用户可以上网。对于默认网关的设定有手动设置和自动设置这两种,
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008