shell枚举所有php文件,shell 脚本检查某目录下php文件语法

利用php的自带检查文件方法 php -l 来使用shell 批量检查某目录下的文件。 每次写完脚本都要 php -l 一下,看看有没有发生低级的语法错误,(疏忽过导致事故), 写了个简单的shell 脚本批量检查目录下的 php文件语法。

 代码如下复制代码

check_php_syntax.sh

#!/bin/bash

# check php syntax

if [ $# -lt 1 ];then

echo 'Usage: ' $0  'directory';

exit

fi

if [ ! -d $1 ];then

echo $1  'not a directory,please check!';

exit

fi

directory=$1

temp_file="/tmp/file$$"

#echo $temp_file

ls -R $directory | awk  '

BEGIN{

FS="n"

folder="'$directory'"

logname="'$temp_file'"

}

{

if($0~/.php$/){

system("php -l " folder "/" $0  "   >>  " logname  " 2>&1")

}

if($0~/:$/){

folder=substr($1,1,length($1)-1)

}

}

'

if [ -e $temp_file ];then

cat $temp_file | awk '

BEGIN{

error = 0

}

{

if($0~/Parse/) {

error

errorfile[$0] = $0

}

}

END{

print "错误文件:" error "个"

if(length(errorfile)>0) print "错误行数:"

for (i in errorfile)

print i

}

'

else

echo "php file not found."

exit;

fi

使用,例如:

 代码如下复制代码
./check_php_syntax /home/liuzhichao/test/

输出:

错误文件:2个

错误行数:

PHP Parse error:  syntax error, unexpected T_VARIABLE in /home/liuzhichao/test/awktest/a.php on line 3

PHP Parse error:  syntax error, unexpected T_STRING, expecting ')' in /home/liuzhichao/test/levelcity.php on line 19

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值