Home  >  Article  >  php教程  >  shell 脚本检查某目录下php文件语法

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

WBOY
WBOYOriginal
2016-05-25 16:44:301172browse

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


教程地址:

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn