#!/bin/bash
# 指定要检查的文件夹路径
DIRECTORY="/www/wwwroot/75utf8.com/php8"
# 指定输出文件
OUTPUT_FILE="111.txt"
# 清空输出文件,以免之前的运行结果干扰
> "$OUTPUT_FILE"
# 使用find命令递归地查找所有.php文件
find "$DIRECTORY" -name "*.php" | while read -r FILE; do
# 使用php -l检查语法
output=$(php -l "$FILE" 2>&1)
# 检查输出中是否包含"没有错误"的特征
if ! echo "$output" | grep -q 'No syntax errors detected in'; then
# 如果没有"没有错误"的特征,输出文件名和错误信息
echo "$FILE" >> "$OUTPUT_FILE"
echo "$output" >> "$OUTPUT_FILE"
echo "-----------------------------------" >> "$OUTPUT_FILE"
fi
done
这个脚本是用 Bash(一种常见的 Unix shell 和脚本语言)编写的。它的主要作用是递归检查指定目录下所有 PHP 文件的语法,并将有语法错误的文件及错误信息保存到指定的输出文件中。具体功能如下:
指定目录:通过 DIRECTORY="/www/wwwroot/75utf8.com/php8" 来设置需要检查的 PHP 文件所在的文件夹路径。
输出文件:通过 OUTPUT_FILE="111.txt" 设置语法错误的文件和对应错误信息的输出文件。
清空输出文件:用 > "$OUTPUT_FILE" 确保每次运行脚本时,输出文件从空白开始,以避免之前的内容干扰。
查找文件:通过 find "$DIRECTORY" -name "*.php" 命令递归查找指定目录下所有的 PHP 文件。
PHP 语法检查:通过 php -l "$FILE" 检查 PHP 文件语法,并通过 grep 判断输出中是否有 "No syntax errors detected in"(即没有语法错误的提示)。
保存错误:如果发现语法错误,将错误文件名和错误信息写入到 111.txt 文件中。
这是一个典型的 Bash 脚本,适用于 Unix/Linux 系统上的 PHP 项目维护或开发环境中的语法错误检查。