首页 >php教程 >php手册 >shell 脚本检查某目录下php文件语法

shell 脚本检查某目录下php文件语法

WBOY
WBOY原创
2016-05-25 16:44:301244浏览

利用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


教程地址:

欢迎转载!但请带上文章地址^^

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn